<?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.kubernetes.top/</link><description>docker.top</description><item><title>从 0 到 1：OpenClaw+K8s+Docker 完整部署教程（附避坑 + 排错）</title><link>https://www.kubernetes.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.kubernetes.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.kubernetes.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.kubernetes.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.kubernetes.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.kubernetes.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.kubernetes.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.kubernetes.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.kubernetes.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.kubernetes.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.kubernetes.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.kubernetes.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><item><title>Kubernetes v1.35: 通过就地重启 Pod 实现更高的效率</title><link>https://www.kubernetes.top/?id=453</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.kubernetes.top/zb_users/upload/2026/02/202602281102078074500.png&quot; alt=&quot;2e2ec1676011dd9c4d1534b0bbdf9cc9.png&quot; width=&quot;614&quot; height=&quot;373&quot; style=&quot;width: 614px; height: 373px;&quot;/&gt;&lt;/section&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; font-size: 14px; line-height: 1.5em; letter-spacing: 0em; word-break: break-word; visibility: visible; box-sizing: border-box !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; line-height: 1.8em; letter-spacing: 0em; text-align: justify; 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;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #0080FF; font-weight: bold; visibility: visible;&quot;&gt;Yuan Wang&lt;/span&gt;&lt;sup style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 0; color: rgb(0, 128, 255); font-weight: bold; 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;/sup&gt;&lt;span leaf=&quot;&quot; style=&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;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #0080FF; font-weight: bold; visibility: visible;&quot;&gt;Giuseppe Tinti Tomio&lt;/span&gt;&lt;sup style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 0; color: rgb(0, 128, 255); font-weight: bold; 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;/sup&gt;&lt;span leaf=&quot;&quot; style=&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;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #0080FF; font-weight: bold; visibility: visible;&quot;&gt;Sergey Kanzhelev&lt;/span&gt;&lt;sup style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 0; color: rgb(0, 128, 255); font-weight: bold; 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;/sup&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-align: justify; 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;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #0080FF; font-weight: bold; visibility: visible;&quot;&gt;Xin Li&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;sup style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 0; color: rgb(0, 128, 255); font-weight: bold; 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;/sup&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-align: justify; 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;Kubernetes 1.35 版本引入了一项强大的新特性，满足了用户对&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;wx_search_keyword_wrap&quot; link-id=&quot;link-1772247648431-0.39213798027694935&quot; style=&quot;-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;&amp;nbsp;就地重启的迫切需求。 这项名为“重启所有容器”（Restart All Containers，1.35 版本为 Alpha 版）的特性， 相比于资源用量较高的删除并重建整个 Pod 的方式，能够更高效地重置 Pod 的状态。 该特性对于 AI/ML 工作负载尤为实用，使应用程序开发人员能够专注于核心训练逻辑， 同时将复杂的故障处理和恢复机制交给边车容器和声明式 Kubernetes 配置来处理。 凭借&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%; overflow-wrap: break-word; color: rgb(30, 107, 184); 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: Consolas, Monaco, Menlo, monospace; word-break: break-all; visibility: visible; 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; visibility: visible;&quot;&gt;RestartAllContainers&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;和其他计划中的增强特性， Kubernetes 将继续构建更灵活、更健壮、更高效的 AI/ML 工作负载平台。&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;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: 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-align: justify; 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;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%; overflow-wrap: break-word; color: rgb(30, 107, 184); 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: Consolas, Monaco, Menlo, monospace; word-break: break-all; visibility: visible; 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; visibility: visible;&quot;&gt;RestartAllContainersOnContainerExits&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;特性门控即可使用此新特性。 此 Alpha 特性扩展了&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #0080FF; font-weight: bold; visibility: visible;&quot;&gt;容器重启规则特性&lt;/span&gt;&lt;sup style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 0; color: rgb(0, 128, 255); font-weight: bold; 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;[5]&lt;/span&gt;&lt;/sup&gt;&lt;span leaf=&quot;&quot; style=&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 1.35 中升级为 Beta 版。&lt;/span&gt;&lt;/p&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-size: 16px; max-width: 100%; color: rgb(0, 82, 255); 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%; line-height: 1.5em; letter-spacing: 0em; 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;问题：当单个容器重启不足以解决问题，而重新创建 Pod 成本过高时&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; line-height: 1.8em; letter-spacing: 0em; text-align: justify; 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 长期以来一直支持 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%; overflow-wrap: break-word; color: rgb(30, 107, 184); 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: Consolas, Monaco, Menlo, monospace; word-break: break-all; visibility: visible; 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; visibility: visible;&quot;&gt;restartPolicy&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;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #0080FF; font-weight: bold; visibility: visible;&quot;&gt;单个容器级别的重启策略&lt;/span&gt;&lt;sup style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 0; color: rgb(0, 128, 255); font-weight: bold; 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;[6]&lt;/span&gt;&lt;/sup&gt;&lt;span leaf=&quot;&quot; style=&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(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; 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(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; 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;span leaf=&quot;&quot; style=&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;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; 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;/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-align: justify; 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;在所有这些情况下，我们期望的操作并非重启单个容器，而是重启所有容器。 此前，实现此目的的唯一方法是删除 Pod，然后由控制器（例如 Job 或 ReplicaSet）创建一个新的 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; line-height: 1.8em; letter-spacing: 0em; text-align: justify; 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;在处理大规模 AI/ML 工作负载（≥ 1000 个节点，每个节点一个 Pod）时，这种低效性会更加严重。 这些同步工作负载的一个常见要求是，当发生故障（例如节点崩溃）时， 必须重新创建集群中的所有 Pod 以重置状态，然后才能恢复训练， 即使其他 Pod 并未直接受到故障的影响。 同时删除、创建和调度数千个 Pod 会造成巨大的瓶颈。 此次故障造成的损失估计每月可能高达 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-align: justify; 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;处理 AI/ML 训练任务的这些故障需要复杂的集成，涉及训练框架和 Kubernetes， 而这两者通常都很脆弱且繁琐。 此特性引入了一种 Kubernetes 原生解决方案， 提高了系统健壮性，并使应用程序开发人员能够专注于其核心训练逻辑。&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-align: justify; 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 保留在其分配的节点上可以进行进一步的优化。 例如，可以实现与特定 Pod 标识绑定的节点级缓存， 而当 Pod 不必要地在不同的节点上重新创建时，这种优化方式是无法实现的。&lt;/span&gt;&lt;/p&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-size: 16px; max-width: 100%; color: rgb(0, 82, 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%; line-height: 1.5em; letter-spacing: 0em; 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;引入&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;RestartAllContainers&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;/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; line-height: 1.8em; letter-spacing: 0em; text-align: justify; 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;为了解决这个问题，Kubernetes v1.35 在容器重启规则中添加了一个新的操作：&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; color: rgb(30, 107, 184); 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: 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;RestartAllContainers&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;。 当容器以符合此操作规则的方式退出时，kubelet 会启动对 Pod 的快速&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;就地&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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-align: justify; 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;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;Pod 的 UID、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); 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;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(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%; overflow-wrap: break-word; color: rgb(30, 107, 184); 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; 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: 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;emptyDir&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;和从 PVC 挂载的卷。&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-align: justify; 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;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;将按顺序再次运行，随后是边车容器和常规容器， 从而确保在已知良好的环境中完全重新启动。 除了临时容器（会被终止）之外，所有其他容器——包括之前成功或失败的容器——都将重新启动， 而不管它们各自的重启策略如何。&lt;/span&gt;&lt;/p&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-size: 16px; max-width: 100%; color: rgb(0, 82, 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%; line-height: 1.5em; letter-spacing: 0em; 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-size: 14px; max-width: 100%; color: rgb(0, 82, 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%; line-height: 1.5em; letter-spacing: 0em; 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. 高效重启机器学习/批处理作业&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-align: justify; 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;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #0080FF; font-weight: bold;&quot;&gt;在工作节点 Pod 发生故障时重新调度&lt;/span&gt;&lt;sup style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 0; color: rgb(0, 128, 255); font-weight: bold;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;/sup&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 个节点的训练集群中， 重新调度带来的开销每月可能会浪费&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #0080FF; font-weight: bold;&quot;&gt;超过 10 万美元的计算资源&lt;/span&gt;&lt;sup style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 0; color: rgb(0, 128, 255); font-weight: bold;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;/sup&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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-align: justify; 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%; overflow-wrap: break-word; color: rgb(30, 107, 184); 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: 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;RestartAllContainers&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（例如，位于不健康节点上的 Pod），同时对其余健康的 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%; overflow-wrap: break-word; color: rgb(30, 107, 184); 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: 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;RestartAllContainers&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-align: justify; 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 的快速重置， 使其能够从上一个检查点重新启动，而无需 Job 控制器的参与。Kubernetes 现在原生支持此特性。&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-align: justify; 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;有关未来开发和 JobSet 特性的更多详细信息，请参阅&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #0080FF; font-weight: bold;&quot;&gt;KEP-467 JobSet 就地重启&lt;/span&gt;&lt;sup style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 0; color: rgb(0, 128, 255); font-weight: bold;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;/sup&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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%; overflow-x: auto; color: rgb(51, 51, 51); background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; display: -webkit-box; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; border-radius: 0px; font-size: 12px; 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; 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: #DD1144; 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; 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: #DD1144; 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 style=&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;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; 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: #DD1144; line-height: 26px;&quot;&gt;ml-worker-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; 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; 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: #DD1144; 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; 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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #999988; font-style: italic; line-height: 26px;&quot;&gt;# 此初始化容器将在每次就地重启时重新运行。&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #990073; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&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;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: #DD1144; line-height: 26px;&quot;&gt;setup-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;&lt;/span&gt;&lt;span style=&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;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: #DD1144; line-height: 26px;&quot;&gt;my-repo/setup-worker: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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #990073; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&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;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: #DD1144; line-height: 26px;&quot;&gt;watcher-sidecar&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&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;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: #DD1144; line-height: 26px;&quot;&gt;my-repo/watcher: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;&lt;/span&gt;&lt;span style=&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;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: #DD1144; line-height: 26px;&quot;&gt;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;&amp;nbsp;&lt;/span&gt;&lt;span style=&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;restartPolicyRules:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #990073; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&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;action:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #DD1144; line-height: 26px;&quot;&gt;RestartAllContainers&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-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; line-height: 26px;&quot;&gt;onExit:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&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;exitCodes:&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; 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; 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: #DD1144; 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;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #999988; 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;&amp;nbsp;&lt;/span&gt;&lt;span style=&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;values:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #DD1144; line-height: 26px;&quot;&gt;[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 style=&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;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: #990073; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&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;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: #DD1144; line-height: 26px;&quot;&gt;main-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;&lt;/span&gt;&lt;span style=&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;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: #DD1144; line-height: 26px;&quot;&gt;my-repo/training-app: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;/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-size: 14px; max-width: 100%; color: rgb(0, 82, 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%; line-height: 1.5em; letter-spacing: 0em; 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. 重新运行初始化容器以确保干净状态&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-align: justify; 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-align: justify; 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%; overflow-wrap: break-word; color: rgb(30, 107, 184); 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: 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;RestartAllContainers&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-size: 14px; max-width: 100%; color: rgb(0, 82, 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%; line-height: 1.5em; letter-spacing: 0em; 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. 处理高频率的类似任务执行&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-align: justify; 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 创建、调度和初始化流程会非常耗费资源， 尤其是在任务执行时间可能很短的情况下。 Kubernetes 原生支持从头开始重启所有容器，无需自定义解决方案或框架即可处理这种情况。&lt;/span&gt;&lt;/p&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-size: 16px; max-width: 100%; color: rgb(0, 82, 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%; line-height: 1.5em; letter-spacing: 0em; 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;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: 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-align: justify; 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;要试用此特性，你必须在运行 Kubernetes v1.35 或更高版本的 Kubernetes 集群组件（API 服务器和 kubelet）上启用&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%; overflow-wrap: break-word; color: rgb(30, 107, 184); 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: 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;RestartAllContainersOnContainerExits&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;特性门控。 此 Alpha 特性扩展了&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%; overflow-wrap: break-word; color: rgb(30, 107, 184); 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: 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;ContainerRestartRules&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;特性，后者已在 v1.35 版本中升级为 beta 版，并默认启用。&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-align: justify; 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%; overflow-wrap: break-word; color: rgb(30, 107, 184); 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: 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;restartPolicyRules&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;添加到任何容器（Init、边车或常规容器）， 并使用&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%; overflow-wrap: break-word; color: rgb(30, 107, 184); 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: 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;RestartAllContainers&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-align: justify; 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;该特性旨在方便现有应用程序使用。但是，如果应用程序不遵循某些最佳实践， 则可能会导致应用程序本身或可观测性工具出现问题。 启用此特性时，请确保所有容器都是可重入的，并且外部工具已准备好用于重新启动初始化容器。 此外，重启所有容器时，kubelet 不会运行&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%; overflow-wrap: break-word; color: rgb(30, 107, 184); 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: 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;preStop&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%; overflow-wrap: break-word; color: rgb(30, 107, 184); 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: 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;preStop&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;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-size: 16px; max-width: 100%; color: rgb(0, 82, 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%; line-height: 1.5em; letter-spacing: 0em; 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;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: 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-align: justify; 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%; overflow-wrap: break-word; color: rgb(30, 107, 184); 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: 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;AllContainersRestarting&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%; overflow-wrap: break-word; color: rgb(30, 107, 184); 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: 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;True&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 准备好重新开始其生命周期时， 此条件变为&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%; overflow-wrap: break-word; color: rgb(30, 107, 184); 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: 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;False&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;/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-align: justify; 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;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-size: 16px; max-width: 100%; color: rgb(0, 82, 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%; line-height: 1.5em; letter-spacing: 0em; 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;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;阅读&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #0080FF; font-weight: bold;&quot;&gt;Pod 生命周期&lt;/span&gt;&lt;sup style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 0; color: rgb(0, 128, 255); font-weight: bold;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;/sup&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;阅读&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #0080FF; font-weight: bold;&quot;&gt;KEP-5532：容器退出时重启所有容器&lt;/span&gt;&lt;sup style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 0; color: rgb(0, 128, 255); font-weight: bold;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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]&lt;/span&gt;&lt;/sup&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;阅读&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #0080FF; font-weight: bold;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;JobSet issue&amp;nbsp;&lt;a class=&quot;wx_topic_link&quot; topic-id=&quot;mkw2hrbt-p1r1yp&quot; data-topic=&quot;1&quot; link-id=&quot;e3af&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;#467&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;sup style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 0; color: rgb(0, 128, 255); font-weight: bold;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[12]&lt;/span&gt;&lt;/sup&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;中关于 JobSet 就地重启的提案。&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-size: 16px; max-width: 100%; color: rgb(0, 82, 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%; line-height: 1.5em; letter-spacing: 0em; 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;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: 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-align: justify; 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;作为一项 Alpha 特性，&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; color: rgb(30, 107, 184); 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: 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;RestartAllContainers&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;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #0080FF; font-weight: bold;&quot;&gt;SIG Node&lt;/span&gt;&lt;sup style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 0; color: rgb(0, 128, 255); font-weight: bold;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[13]&lt;/span&gt;&lt;/sup&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 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-align: justify; 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;你可以通过以下方式联系 SIG Node：&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 class=&quot;wx_search_keyword_wrap&quot; link-id=&quot;link-1772247648432-0.43344054398729437&quot; style=&quot;-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;Slack&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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #0080FF; font-weight: bold;&quot;&gt;&lt;a class=&quot;wx_topic_link&quot; topic-id=&quot;mkw2hrbt-u857s4&quot; data-topic=&quot;1&quot; link-id=&quot;f3b2&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;#sig&lt;/a&gt;-node&lt;/span&gt;&lt;sup style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 0; color: rgb(0, 128, 255); font-weight: bold;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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]&lt;/span&gt;&lt;/sup&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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #0080FF; font-weight: bold;&quot;&gt;邮件列表&lt;/span&gt;&lt;sup style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; line-height: 0; color: rgb(0, 128, 255); font-weight: bold;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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]&lt;/span&gt;&lt;/sup&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;section data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 30px 0px 15px; padding: 0px; outline: 0px; max-width: 100%; border-style: none; border-width: 3px; border-color: 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: 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: #0050FF; 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;/section&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%; border-style: none; border-width: 3px; border-color: 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: 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: flex; line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 0px 0px; outline: 0px; max-width: 100%; line-height: 1.8em; letter-spacing: 0em; color: rgba(0, 0, 0, 0.6); width: 65.6979px; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; font-size: 11.2px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, &amp;quot;PingFang SC&amp;quot;, Cambria, Cochin, Georgia, Times, &amp;quot;Times New Roman&amp;quot;, serif; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;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%; clear: both; min-height: 1em; text-align: justify; text-indent: 0em; display: inline; word-break: break-all; flex-basis: 0%; flex-grow: 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;Yuan Wang:&amp;nbsp;&lt;/span&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(0, 128, 255); background-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;https://github.com/yuanwang04&lt;/em&gt;&lt;/p&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; display: flex; line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 0px 0px; outline: 0px; max-width: 100%; line-height: 1.8em; letter-spacing: 0em; color: rgba(0, 0, 0, 0.6); width: 65.6979px; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; font-size: 11.2px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, &amp;quot;PingFang SC&amp;quot;, Cambria, Cochin, Georgia, Times, &amp;quot;Times New Roman&amp;quot;, serif; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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]&amp;nbsp;&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: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-align: justify; text-indent: 0em; display: inline; word-break: break-all; flex-basis: 0%; flex-grow: 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;Giuseppe Tinti Tomio:&amp;nbsp;&lt;/span&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(0, 128, 255); background-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;https://github.com/GiuseppeTT&lt;/em&gt;&lt;/p&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; display: flex; line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 0px 0px; outline: 0px; max-width: 100%; line-height: 1.8em; letter-spacing: 0em; color: rgba(0, 0, 0, 0.6); width: 65.6979px; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; font-size: 11.2px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, &amp;quot;PingFang SC&amp;quot;, Cambria, Cochin, Georgia, Times, &amp;quot;Times New Roman&amp;quot;, serif; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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]&amp;nbsp;&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: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-align: justify; text-indent: 0em; display: inline; word-break: break-all; flex-basis: 0%; flex-grow: 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;Sergey Kanzhelev:&amp;nbsp;&lt;/span&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(0, 128, 255); background-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;https://github.com/SergeyKanzhelev&lt;/em&gt;&lt;/p&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; display: flex; line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 0px 0px; outline: 0px; max-width: 100%; line-height: 1.8em; letter-spacing: 0em; color: rgba(0, 0, 0, 0.6); width: 65.6979px; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; font-size: 11.2px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, &amp;quot;PingFang SC&amp;quot;, Cambria, Cochin, Georgia, Times, &amp;quot;Times New Roman&amp;quot;, serif; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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]&amp;nbsp;&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: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-align: justify; text-indent: 0em; display: inline; word-break: break-all; flex-basis: 0%; flex-grow: 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;Xin Li:&amp;nbsp;&lt;/span&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(0, 128, 255); background-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;https://github.com/my-git9&lt;/em&gt;&lt;/p&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; display: flex; line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 0px 0px; outline: 0px; max-width: 100%; line-height: 1.8em; letter-spacing: 0em; color: rgba(0, 0, 0, 0.6); width: 65.6979px; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; font-size: 11.2px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, &amp;quot;PingFang SC&amp;quot;, Cambria, Cochin, Georgia, Times, &amp;quot;Times New Roman&amp;quot;, serif; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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]&amp;nbsp;&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: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-align: justify; text-indent: 0em; display: inline; word-break: break-all; flex-basis: 0%; flex-grow: 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%; background-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;em style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 128, 255); background-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;https://kubernetes.io/zh-cn/docs/concepts/workloads/pods/pod-lifecycle/&lt;a class=&quot;wx_topic_link&quot; topic-id=&quot;mkw2hrbt-08jd3p&quot; data-topic=&quot;1&quot; link-id=&quot;3a9b&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;#container&lt;/a&gt;-restart-rules&lt;/em&gt;&lt;/p&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; display: flex; line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 0px 0px; outline: 0px; max-width: 100%; line-height: 1.8em; letter-spacing: 0em; color: rgba(0, 0, 0, 0.6); width: 65.6979px; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; font-size: 11.2px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, &amp;quot;PingFang SC&amp;quot;, Cambria, Cochin, Georgia, Times, &amp;quot;Times New Roman&amp;quot;, serif; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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]&amp;nbsp;&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: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-align: justify; text-indent: 0em; display: inline; word-break: break-all; flex-basis: 0%; flex-grow: 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;em style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 128, 255); background-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;https://kubernetes.io/blog/2025/08/29/kubernetes-v1-34-per-container-restart-policy/&lt;/em&gt;&lt;/p&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; display: flex; line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 0px 0px; outline: 0px; max-width: 100%; line-height: 1.8em; letter-spacing: 0em; color: rgba(0, 0, 0, 0.6); width: 65.6979px; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; font-size: 11.2px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, &amp;quot;PingFang SC&amp;quot;, Cambria, Cochin, Georgia, Times, &amp;quot;Times New Roman&amp;quot;, serif; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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]&amp;nbsp;&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: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-align: justify; text-indent: 0em; display: inline; word-break: break-all; flex-basis: 0%; flex-grow: 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;在工作节点 Pod 发生故障时重新调度:&amp;nbsp;&lt;/span&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(0, 128, 255); background-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;https://kubernetes.io/blog/2025/07/03/navigating-failures-in-pods-with-devices/&lt;a class=&quot;wx_topic_link&quot; topic-id=&quot;mkw2hrbu-ygvnh2&quot; data-topic=&quot;1&quot; link-id=&quot;d0a7&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;#roadmap&lt;/a&gt;-for-failure-modes-container-code-failed&lt;/em&gt;&lt;/p&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; display: flex; line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 0px 0px; outline: 0px; max-width: 100%; line-height: 1.8em; letter-spacing: 0em; color: rgba(0, 0, 0, 0.6); width: 65.6979px; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; font-size: 11.2px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, &amp;quot;PingFang SC&amp;quot;, Cambria, Cochin, Georgia, Times, &amp;quot;Times New Roman&amp;quot;, serif; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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]&amp;nbsp;&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: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-align: justify; text-indent: 0em; display: inline; word-break: break-all; flex-basis: 0%; flex-grow: 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;超过 10 万美元的计算资源:&amp;nbsp;&lt;/span&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(0, 128, 255); background-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;https://docs.google.com/document/d/16zexVooHKPc80F4dVtUjDYK9DOpkVPRNfSv0zRtfFpk/edit?tab=t.0&lt;a class=&quot;wx_topic_link&quot; topic-id=&quot;mkw2hrbu-fyjxxu&quot; data-topic=&quot;1&quot; link-id=&quot;43fb&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;#bookmark&lt;/a&gt;=id.qwqcnzf96avw&lt;/em&gt;&lt;/p&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; display: flex; line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 0px 0px; outline: 0px; max-width: 100%; line-height: 1.8em; letter-spacing: 0em; color: rgba(0, 0, 0, 0.6); width: 65.6979px; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; font-size: 11.2px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, &amp;quot;PingFang SC&amp;quot;, Cambria, Cochin, Georgia, Times, &amp;quot;Times New Roman&amp;quot;, serif; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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]&amp;nbsp;&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: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-align: justify; text-indent: 0em; display: inline; word-break: break-all; flex-basis: 0%; flex-grow: 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;KEP-467 JobSet 就地重启:&amp;nbsp;&lt;/span&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(0, 128, 255); background-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;https://github.com/kubernetes-sigs/jobset/issues/467&lt;/em&gt;&lt;/p&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; display: flex; line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 0px 0px; outline: 0px; max-width: 100%; line-height: 1.8em; letter-spacing: 0em; color: rgba(0, 0, 0, 0.6); width: 65.6979px; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; font-size: 11.2px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, &amp;quot;PingFang SC&amp;quot;, Cambria, Cochin, Georgia, Times, &amp;quot;Times New Roman&amp;quot;, serif; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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]&amp;nbsp;&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: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-align: justify; text-indent: 0em; display: inline; word-break: break-all; flex-basis: 0%; flex-grow: 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;Pod 生命周期:&amp;nbsp;&lt;/span&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(0, 128, 255); background-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;https://kubernetes.io/zh-cn/docs/concepts/workloads/pods/pod-lifecycle/&lt;a class=&quot;wx_topic_link&quot; topic-id=&quot;mkw2hrbu-k5aoy1&quot; data-topic=&quot;1&quot; link-id=&quot;21d6&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;#restart&lt;/a&gt;-all-containers&lt;/em&gt;&lt;/p&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; display: flex; line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 0px 0px; outline: 0px; max-width: 100%; line-height: 1.8em; letter-spacing: 0em; color: rgba(0, 0, 0, 0.6); width: 65.6979px; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; font-size: 11.2px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, &amp;quot;PingFang SC&amp;quot;, Cambria, Cochin, Georgia, Times, &amp;quot;Times New Roman&amp;quot;, serif; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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]&amp;nbsp;&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: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-align: justify; text-indent: 0em; display: inline; word-break: break-all; flex-basis: 0%; flex-grow: 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;KEP-5532：容器退出时重启所有容器:&amp;nbsp;&lt;/span&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(0, 128, 255); background-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;https://kep.k8s.io/5532&lt;/em&gt;&lt;/p&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; display: flex; line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 0px 0px; outline: 0px; max-width: 100%; line-height: 1.8em; letter-spacing: 0em; color: rgba(0, 0, 0, 0.6); width: 65.6979px; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; font-size: 11.2px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, &amp;quot;PingFang SC&amp;quot;, Cambria, Cochin, Georgia, Times, &amp;quot;Times New Roman&amp;quot;, serif; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[12]&amp;nbsp;&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: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-align: justify; text-indent: 0em; display: inline; word-break: break-all; flex-basis: 0%; flex-grow: 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;JobSet issue&amp;nbsp;&lt;a class=&quot;wx_topic_link&quot; topic-id=&quot;mkw2hrbu-1cn3ah&quot; data-topic=&quot;1&quot; link-id=&quot;1f42&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;#467&lt;/a&gt;:&amp;nbsp;&lt;/span&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(0, 128, 255); background-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;https://github.com/kubernetes-sigs/jobset/issues/467&lt;/em&gt;&lt;/p&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; display: flex; line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 0px 0px; outline: 0px; max-width: 100%; line-height: 1.8em; letter-spacing: 0em; color: rgba(0, 0, 0, 0.6); width: 65.6979px; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; font-size: 11.2px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, &amp;quot;PingFang SC&amp;quot;, Cambria, Cochin, Georgia, Times, &amp;quot;Times New Roman&amp;quot;, serif; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[13]&amp;nbsp;&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: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-align: justify; text-indent: 0em; display: inline; word-break: break-all; flex-basis: 0%; flex-grow: 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;SIG Node:&amp;nbsp;&lt;/span&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(0, 128, 255); background-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;https://github.com/kubernetes/community/blob/master/sig-node/README.md&lt;/em&gt;&lt;/p&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; display: flex; line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 0px 0px; outline: 0px; max-width: 100%; line-height: 1.8em; letter-spacing: 0em; color: rgba(0, 0, 0, 0.6); width: 65.6979px; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; font-size: 11.2px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, &amp;quot;PingFang SC&amp;quot;, Cambria, Cochin, Georgia, Times, &amp;quot;Times New Roman&amp;quot;, serif; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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]&amp;nbsp;&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: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-align: justify; text-indent: 0em; display: inline; word-break: break-all; flex-basis: 0%; flex-grow: 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;a class=&quot;wx_topic_link&quot; topic-id=&quot;mkw2hrbu-ntfu6k&quot; data-topic=&quot;1&quot; link-id=&quot;2949&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;#sig&lt;/a&gt;-node:&amp;nbsp;&lt;/span&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(0, 128, 255); background-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;https://kubernetes.slack.com/messages/sig-node&lt;/em&gt;&lt;/p&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; display: flex; line-height: 1.8em; letter-spacing: 0em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 2px 0px 0px; outline: 0px; max-width: 100%; line-height: 1.8em; letter-spacing: 0em; color: rgba(0, 0, 0, 0.6); width: 65.6979px; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; font-size: 11.2px; font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, &amp;quot;PingFang SC&amp;quot;, Cambria, Cochin, Georgia, Times, &amp;quot;Times New Roman&amp;quot;, serif; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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]&amp;nbsp;&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: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; text-align: justify; text-indent: 0em; display: inline; word-break: break-all; flex-basis: 0%; flex-grow: 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;em style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; color: rgb(0, 128, 255); background-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;https://groups.google.com/forum/#!forum/kubernetes-sig-node&lt;/em&gt;&lt;/p&gt;&lt;/span&gt;&lt;/section&gt;&lt;/section&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%; 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; text-align: justify; text-wrap: wrap; background-color: rgb(255, 255, 255); letter-spacing: 0.578px; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; 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-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.kubernetes.top/zb_users/upload/2026/02/202602281102361167794.png&quot; alt=&quot;image.png&quot; width=&quot;528&quot; height=&quot;185&quot; style=&quot;width: 528px; height: 185px;&quot;/&gt;&lt;/span&gt;&lt;/section&gt;</description><pubDate>Mon, 16 Feb 2026 11:00:24 +0800</pubDate></item><item><title>Crontab 定时任务避坑指南：这8个坑我都帮你踩过了</title><link>https://www.kubernetes.top/?id=452</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.kubernetes.top/zb_users/upload/2026/02/202602281054018699478.png&quot; alt=&quot;801a1a268c81c750d1262af131120cf7.png&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: wrap; background-color: rgb(255, 255, 255); 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%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 24px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block; 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;Crontab定时任务&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&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 leaf=&quot;&quot; style=&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;：这8个坑我都帮你踩过了&lt;/span&gt;&lt;/span&gt;&lt;/h1&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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-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(0, 0, 0) 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: wrap; background-color: rgb(255, 255, 255); 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%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 22px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block; 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;/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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: wrap; background-color: rgb(255, 255, 255); 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%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 20px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block; 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.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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;干SRE这行十年了，要说让我最头疼的东西，crontab绝对能排进前三。不是因为它难用，恰恰相反，它太简单了，简单到让人掉以轻心。&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;记得2019年那会儿，我刚跳槽到一家电商公司。入职第二天凌晨三点，手机被打爆了——生产环境的数据同步任务没跑，导致早高峰的时候用户看到的全是昨天的价格。排查了两个小时，最后发现就是因为脚本里用了一个命令，在交互式shell里能跑，放到crontab里就找不到。PATH环境变量的问题，一个新人级别的错误，差点让我试用期都过不了。&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;这些年我踩过的crontab的坑，说出来都是泪。今天把这些经验整理出来，希望能帮后来人少走点弯路。&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: wrap; background-color: rgb(255, 255, 255); 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%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 20px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block; 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.2 crontab是什么&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;crontab是Unix/Linux系统下的定时任务调度器，全称是&amp;quot;cron table&amp;quot;。cron这个名字来源于希腊语&amp;quot;chronos&amp;quot;，意思是时间。它从1975年诞生至今，已经快50年了，依然是Linux系统下最常用的定时任务工具。&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;简单来说，crontab就是一个&amp;quot;闹钟管理器&amp;quot;。你告诉它什么时间做什么事，它就会准时执行。比如：&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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); 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;span leaf=&quot;&quot; style=&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;/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;每5分钟检查一次服务状态&lt;/span&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;每周一早上9点发送周报邮件&lt;/span&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;&quot;&gt;每月1号统计上月的业务数据&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 20px; 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;1.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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;crontab之所以能活到今天，还这么受欢迎，主要有这几个特点：&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;：cron守护进程常驻内存，资源占用极低，在我测试的环境中，crond进程通常只占用几MB内存。&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;：只要系统不宕机，cron就会按时触发任务。它经过了几十年的考验，稳定性毋庸置疑。&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;：每个用户有自己的crontab文件，互不干扰。root用户还可以管理所有用户的定时任务。&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 20px; 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;1.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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;根据我这些年的经验，crontab特别适合以下场景：&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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;li&gt;&lt;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;数据库优化（VACUUM、索引重建）&lt;/span&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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;li&gt;&lt;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;li&gt;&lt;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;ETL作业&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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;li&gt;&lt;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;li&gt;&lt;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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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;li&gt;&lt;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;li&gt;&lt;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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;但是，crontab也有它不擅长的地方：&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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;li&gt;&lt;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;需要秒级精度的任务（crontab最小粒度是分钟）&lt;/span&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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 style=&quot;-webkit-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 timer、Kubernetes CronJob、或者专业的调度系统如&lt;/span&gt;&lt;span class=&quot;wx_search_keyword_wrap&quot; link-id=&quot;link-1772247188001-0.8032234789737451&quot; style=&quot;-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;Airflow&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;、XXL-JOB等。&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%; 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; 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;span style=&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: 20px; 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;1.5 环境要求&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;pre data-tool=&quot;mdnice编辑器&quot; 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;操作系统：CentOS 7/8、Rocky Linux 8/9、Ubuntu 20.04/22.04&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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版本：cronie 1.5.x 或 vixie-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;Shell：Bash 4.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;/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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;在开始之前，先确认你的系统已经安装并启动了cron服务：&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;# CentOS/RHEL/Rocky Linux&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 crond&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 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;/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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;pre data-tool=&quot;mdnice编辑器&quot; 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;# CentOS/RHEL/Rocky Linux&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 crond&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;crond&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 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;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;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;/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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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-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(0, 0, 0) 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 22px; 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&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 20px; 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 准备工作&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;在开始配置crontab之前，有几件事情必须做好。这是我多年踩坑总结出来的经验，跳过任何一步都可能给你埋下隐患。&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;pre data-tool=&quot;mdnice编辑器&quot; 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;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;timedatectl&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看时区设置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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/timezone &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 -l /etc/localtime &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# CentOS/RHEL&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 如果需要修改时区（以上海为例）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 timedatectl&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;-timezone 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;/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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;关于NTP时间同步，这个也很重要。如果服务器时间漂移严重，定时任务可能会出现诡异的问题：&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;# 检查NTP同步状态&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;timedatectl show | grep NTP&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# CentOS 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;sudo systemctl status chronyd&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;chronyc tracking&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 systemd-timesyncd&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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 了解crontab文件位置&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;在Linux系统中，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%; 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/crontab &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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，需要指定用户&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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/cron.d/ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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目录，放置各种系统任务&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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/cron.hourly/ &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 每小时执行的脚本目录&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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/cron.daily/ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 每天执行的脚本目录&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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/cron.weekly/ &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 每周执行的脚本目录&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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/cron.monthly/ &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 每月执行的脚本目录&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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/spool/cron/ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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文件存放目录（CentOS/RHEL）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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/spool/cron/crontabs/ &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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文件存放目录（Ubuntu/Debian）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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(30, 107, 184); 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: 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;crontab -e&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(30, 107, 184); 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: 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;/var/spool/cron/&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%; 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; 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;span style=&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.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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;不是所有用户都能使用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%; 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/cron.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: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 白名单，只有列在里面的用户可以使用crontab&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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/cron.deny &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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;li&gt;&lt;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;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(30, 107, 184); 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; 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: 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;cron.allow&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;存在，只有里面的用户可以使用crontab&lt;/span&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;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(30, 107, 184); 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; 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: 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;cron.allow&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(30, 107, 184); 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; 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: 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;cron.deny&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;span leaf=&quot;&quot; style=&quot;-webkit-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;/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%; 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;# 检查当前用户是否可以使用crontab&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 -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;# 如果提示permission denied，需要联系管理员&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 管理员可以这样添加用户权限&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;username&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-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/cron.allow&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 20px; 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 核心配置&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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 crontab时间表达式&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;crontab的时间表达式由5个字段组成，这是整个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%; 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;┌───────────── 分钟 (0 - 59)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 - 23)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 - 31)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 - 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;│ │ │ │ ┌───────────── 星期 (0 - 7，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;│ │ │ │ │&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;│ │ │ │ │&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 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;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;/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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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); 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: 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%; color: rgb(0, 0, 0); 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: 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%; color: rgb(0, 0, 0); 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: 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%; color: rgb(0, 0, 0); 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: rgba(204, 204, 204, 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;/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;* * * * *&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%; 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, 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;/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;1,15,30 * * * *&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;在第1、15、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%; 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: rgba(204, 204, 204, 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;/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;0 9-18 * * *&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;9点到18点的整点&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, 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;/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;*/5 * * * *&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;每5分钟&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;pre data-tool=&quot;mdnice编辑器&quot; 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;* * * * * /path/to/script.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: #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;*/5 * * * * /path/to/script.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: #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;30 * * * * /path/to/script.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: #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;0 2 * * * /path/to/script.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: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 每天的9点和18点执行&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 9,18 * * * /path/to/script.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: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 工作日的上午9点到下午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;0 9-18 * * 1-5 /path/to/script.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: #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;0 3 * * 1 /path/to/script.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: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 每月1号凌晨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;0 4 1 * * /path/to/script.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: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 每年1月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;0 0 1 1 * /path/to/script.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: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 每季度第一天执行（1月、4月、7月、10月的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;0 0 1 1,4,7,10 * /path/to/script.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; 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; text-indent: 0em; text-wrap: 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;有个小技巧：如果你记不住时间表达式的格式，可以用在线工具，比如 crontab.guru 这个网站，输入表达式就能看到解释。&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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 编辑crontab&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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(30, 107, 184); 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: 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;crontab -e&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%; 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;# 编辑当前用户的crontab&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 -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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# root用户编辑其他用户的crontab&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 crontab -e -u username&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;第一次使用时，系统可能会让你选择编辑器。我个人推荐vim，但如果你不熟悉vim，选择nano也可以。&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;pre data-tool=&quot;mdnice编辑器&quot; 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;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;EDITOR=vim&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 或者永久设置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;#39;export EDITOR=vim&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;gt; ~/.bashrc&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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 crontab常用命令&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;# 列出当前用户的所有定时任务&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 -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;crontab -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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 删除所有定时任务（危险操作！）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 -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;# 删除前确认（推荐）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 -ri&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 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;sudo crontab -l -u username&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 /path/to/crontab_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: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 备份当前crontab到文件&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 -l &amp;gt; ~/crontab_backup_$(date +%Y%m%d).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;/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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 20px; 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 启动验证&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;配置完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%; 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;# 编辑crontab&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 -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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 添加一个每分钟执行的测试任务&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 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;crontab test 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;$(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;&amp;gt;&amp;gt; /tmp/crontab_test.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; 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; text-indent: 0em; text-wrap: 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;等待1-2分钟，然后检查日志：&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;cat /tmp/crontab_test.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;# 检查系统日志（CentOS/RHEL）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 grep CRON /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;/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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 grep CRON /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;/syslog&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;如果看到日志输出，说明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%; 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;crontab -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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 删除测试任务那一行&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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-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(0, 0, 0) 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 22px; 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&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 20px; 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;3.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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;这是我在生产环境中常用的一个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%; 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: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Crontab Configuration for Production 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;# Author: SRE Team&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Last Updated: 2025-01-07&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# ============================================&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 环境变量设置（重要！）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;SHELL=/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;PATH=/usr/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;/sbin:/usr/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;/bin:/usr/sbin:/usr/bin:/sbin:/bin&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;MAILTO=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;HOME=/home/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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# ============================================&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 系统维护任务&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# ============================================&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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点清理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;0 3 * * * /usr/bin/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;/app -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;-mtime +7 -delete 2&amp;gt;&amp;amp;1 | /usr/bin/logger -t cron-log-cleanup&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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;0 4 * * * /usr/bin/find /tmp -&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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 -mtime +3 -delete 2&amp;gt;&amp;amp;1 | /usr/bin/logger -t cron-tmp-cleanup&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# ============================================&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 数据库备份任务&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# ============================================&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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点全量备份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;0 2 * * * /usr/bin/flock -xn /tmp/mysql_backup.lock /home/deploy/scripts/mysql_backup.sh &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;/backup/mysql_backup.log 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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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;0 1 * * 0 /home/deploy/scripts/remote_backup.sh &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;/backup/remote_backup.log 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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# ============================================&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 应用监控任务&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# ============================================&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 每分钟检查应用健康状态&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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/deploy/scripts/health_check.sh &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;/monitor/health_check.log 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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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;*/5 * * * * /home/deploy/scripts/disk_check.sh 2&amp;gt;&amp;amp;1 | /usr/bin/logger -t cron-disk-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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 业务定时任务&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# ============================================&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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 leaf=&quot;&quot; style=&quot;-webkit-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 8 * * 1-5 /usr/bin/flock -xn /tmp/daily_report.lock /home/deploy/scripts/send_daily_report.sh &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;/report/daily.log 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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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号凌晨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;0 5 1 * * /home/deploy/scripts/generate_monthly_report.sh &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;/report/monthly.log 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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# ============================================&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 数据同步任务&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# ============================================&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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;*/10 * * * * /usr/bin/flock -xn /tmp/cache_sync.lock /home/deploy/scripts/sync_cache.sh &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;/sync/cache.log 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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 每小时同步配置文件&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 * * * * /home/deploy/scripts/sync_config.sh &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;/sync/config.log 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;/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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 20px; 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;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%; 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; 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;span style=&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;案例1：MySQL数据库自动备份脚本&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;pre data-tool=&quot;mdnice编辑器&quot; 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;# mysql_backup.sh - 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: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 用法: ./mysql_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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# ========== 配置区域 ==========&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_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;backup_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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_PASSWORD=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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_secure_password&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_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;localhost&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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/backup/mysql&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;RETAIN_DAYS=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;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;HOSTNAME=$(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;# 邮件告警配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_EMAIL=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;dba@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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# ========== 函数定义 ==========&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&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;subject=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-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] MySQL Backup Failed on&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;body=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;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;${body}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;| mail -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;${subject}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;${ALERT_EMAIL}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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: #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;Cleaning up backups older than&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${RETAIN_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;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; 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;*.sql.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 +&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;${RETAIN_DAYS}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-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;&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;*.sql.gz.md5&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-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 +&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;${RETAIN_DAYS}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-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;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# ========== 主逻辑 ==========&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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 MySQL backup...&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 创建备份目录&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;DATABASES=$(mysql -h&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;${MYSQL_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;&amp;nbsp;-u&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;${MYSQL_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;&amp;nbsp;-p&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;${MYSQL_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;&amp;nbsp;-N -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;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;SELECT schema_name FROM information_schema.schemata WHERE schema_name NOT IN (&amp;#39;information_schema&amp;#39;, &amp;#39;performance_schema&amp;#39;, &amp;#39;mysql&amp;#39;, &amp;#39;sys&amp;#39;);&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-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: #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;${DATABASES}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;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;ERROR: No databases found or connection failed&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&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;Failed to connect to MySQL or no databases found&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;DB&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;${DATABASES}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 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; 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;/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${DB}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;_&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;.sql.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;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;Backing up database:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${DB}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;mysqldump -h&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;${MYSQL_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;&amp;nbsp;-u&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;${MYSQL_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;&amp;nbsp;-p&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;${MYSQL_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;&amp;nbsp;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; --single-transaction \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; --routines \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; --triggers \&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; --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; &amp;nbsp; &amp;nbsp; --&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;-gtid-purged=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;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;${DB}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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 | gzip &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_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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 生成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;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; md5sum&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;.md5&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; FILE_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: #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;-f%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;${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;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;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%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;${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;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;${FILE_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;-lt 100 ];&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-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: Backup 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: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;nbsp;seems too small (&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_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;nbsp;bytes)&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: #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;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;SUCCESS:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${DB}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;backed up 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;${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;nbsp;(&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_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;nbsp;bytes)&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: #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: #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;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;ERROR: Failed to backup&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${DB}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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; 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;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;Failed to backup database:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${DB}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;# 清理旧备份&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;Backup 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;# 输出备份统计&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_SIZE=$(du -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: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;| 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 leaf=&quot;&quot; style=&quot;-webkit-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_COUNT=$(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;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;.sql.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;| 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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;Total backup size:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_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;, Files created today:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_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;/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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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：服务健康检查脚本&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: #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;# health_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;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;-uo 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;# ========== 配置 ==========&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;SERVICES=(&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;php-fpm&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;redis&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;mysql&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_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: #98C379; line-height: 26px;&quot;&gt;&amp;quot;http://localhost/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;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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:8080/api/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;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;https://hooks.slack.com/services/xxx/yyy/zzz&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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/monitor/health_check.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: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# ========== 函数 ==========&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&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;&amp;gt;&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;${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;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: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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; curl -s -X POST -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;#39;Content-type: application/json&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; &amp;nbsp; &amp;nbsp; &amp;nbsp; --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: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-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;text\&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;}&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;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;&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;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&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_service&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;() {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;service=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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: #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;systemctl is-active --quiet&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;${service}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;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;check_http&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;() {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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: #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;response&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 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 leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-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-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;${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;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;&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; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;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; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# ========== 主逻辑 ==========&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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=$(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;HAS_ERROR=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: #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;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;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;${SERVICES[@]}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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 leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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_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: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;${service}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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: 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: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-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 not running!&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;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-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] 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: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-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 DOWN on&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; HAS_ERROR=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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;# 检查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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;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: #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;${HTTP_ENDPOINTS[@]}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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 leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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_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: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;${endpoint}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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: HTTP 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: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-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 not responding!&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;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-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] HTTP 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: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-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 not responding on&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; HAS_ERROR=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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;# 检查磁盘空间&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;DISK_USAGE=$(df / | tail -1 | 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;| 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/%//&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: #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;${DISK_USAGE}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;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;WARNING: Disk usage 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;${DISK_USAGE}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;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;${DISK_USAGE}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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; &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;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;[CRITICAL] Disk usage 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;${DISK_USAGE}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; HAS_ERROR=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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;MEM_USAGE=$(free | grep Mem | 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 int($3/$2 * 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;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;${MEM_USAGE}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;WARNING: Memory usage 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;${MEM_USAGE}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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; 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;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-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 usage 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;${MEM_USAGE}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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: #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;${HAS_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;&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 leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;OK: All health checks 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: #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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;${HAS_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;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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;案例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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;# log_rotate.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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# ========== 配置 ==========&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_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 leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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/app&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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/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;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;/home/deploy/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 leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_SIZE_MB=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;RETAIN_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;COMPRESS_DAYS=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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&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;rotate_large_logs&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;() {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;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;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;Checking for large logs 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;${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; 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;${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;*.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 +&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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_MB}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 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;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: #E6C07B; line-height: 26px;&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;&amp;nbsp;-r logfile;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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: #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;rotated=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;${logfile}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_%H%M%S)&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;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;Rotating&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${logfile}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 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;$(du -h &amp;quot;${logfile}&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;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mv&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;${logfile}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;${rotated}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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; gzip&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;${rotated}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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; touch&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;${logfile}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;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;Created&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${rotated}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;.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;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&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;compress_old_logs&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;() {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;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;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;Compressing logs older than&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${COMPRESS_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;days 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;${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; 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;${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;*.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;! -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;*.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 +&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;${COMPRESS_DAYS}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-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;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: #E6C07B; line-height: 26px;&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;&amp;nbsp;-r logfile;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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: #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;Compressing&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${logfile}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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; gzip&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;${logfile}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;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;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&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_logs&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;() {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;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;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;Cleaning up logs older than&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${RETAIN_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;days 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;${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;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;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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; count=$(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;${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;*.log.*.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 +&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;${RETAIN_DAYS}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-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 | 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 leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;${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;&amp;nbsp;-gt 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 leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &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;${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;*.log.*.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 +&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;${RETAIN_DAYS}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-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 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;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;Deleted&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${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;nbsp;old log 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 leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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 leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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 log rotation and cleanup...&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;${LOG_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 leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;${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;];&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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; rotate_large_logs&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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; &amp;nbsp; &amp;nbsp; &amp;nbsp; compress_old_logs&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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; &amp;nbsp; &amp;nbsp; &amp;nbsp; cleanup_old_logs&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;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;WARNING: Directory&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;nbsp;does not exist, skipping&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;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;Log rotation 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;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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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-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(0, 0, 0) 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 22px; 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&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;这一章是重头戏，我会详细讲述这些年踩过的8个大坑，以及如何避免它们。每一个坑都有血泪教训在里面。&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 20px; 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;坑1：环境变量问题（PATH不生效）&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;2019年，我负责维护一个电商平台的后台服务。有一天凌晨，值班同事打电话说数据同步任务没跑。我登上服务器，手动执行脚本，一切正常。查了crontab配置，也没问题。到底怎么回事？&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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(30, 107, 184); 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: 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;aws&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;命令来上传备份文件到S3，这个命令是通过pip安装的，路径在&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(30, 107, 184); 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: 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;/usr/local/bin/aws&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;。手动执行的时候，我的shell环境有完整的PATH，能找到这个命令。但crontab执行的时候，PATH是精简版的，只有&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(30, 107, 184); 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: 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;/usr/bin:/bin&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;crontab执行任务时，环境和你在终端手动执行是完全不同的：&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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); 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: 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%; color: rgb(0, 0, 0); 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: 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%; color: rgb(0, 0, 0); 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: 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%; color: rgb(0, 0, 0); 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;PATH变量&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: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-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;Login Shell&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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（包含用户配置）&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, 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;crontab执行&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Non-login Shell&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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（/usr/bin:/bin）&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;crontab不会加载&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(30, 107, 184); 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: 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;~/.bashrc&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(30, 107, 184); 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: 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;~/.bash_profile&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;这些文件，所以你在这些文件里配置的环境变量、别名、函数，crontab里统统用不了。&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;方案一：在crontab开头定义PATH（推荐）&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;# 在crontab文件开头添加&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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=/usr/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;/sbin:/usr/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;/bin:/usr/sbin:/usr/bin:/sbin:/bin&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;SHELL=/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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 然后是你的定时任务&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 * * * /home/deploy/scripts/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;/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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;pre data-tool=&quot;mdnice编辑器&quot; 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;# 使用绝对路径调用命令&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/usr/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;/bin/aws s3 cp /data/backup.tar.gz s3://my-bucket/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;方案三：在脚本开头source环境配置&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;# 加载用户环境&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;&amp;nbsp;~/.bashrc&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 或者&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;&amp;nbsp;/etc/profile&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 然后执行你的逻辑&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 s3 cp /data/backup.tar.gz s3://my-bucket/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;方案四：在crontab里直接source&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;* * * * *&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;&amp;nbsp;~/.bashrc &amp;amp;&amp;amp; /home/deploy/scripts/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;/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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;我个人推荐方案一和方案二结合使用。在crontab开头定义PATH，同时在脚本里也使用绝对路径。这样双重保险，不会出问题。&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;pre data-tool=&quot;mdnice编辑器&quot; 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;# 模拟crontab的环境来测试脚本&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 -i PATH=/usr/bin:/bin 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: #D19A66; line-height: 26px;&quot;&gt;$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;&amp;nbsp;SHELL=/bin/bash /bin/bash /path/to/your/script.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;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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 20px; 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：权限问题&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;有一次我们的日志清理任务突然不工作了。脚本是普通用户跑的，但要清理的目录里有些文件是root创建的。之前一直没问题，后来运维同事加了一个日志收集agent，这个agent是root运行的，创建的日志文件自然也是root权限，我们的清理脚本就清理不掉了。&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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;li&gt;&lt;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(0, 0, 0); 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;/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(0, 0, 0); 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;/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(0, 0, 0); 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;脚本要执行的命令需要sudo&lt;/strong&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(0, 0, 0); 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;用户被禁止使用crontab&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; 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; text-indent: 0em; text-wrap: 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%; 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 leaf=&quot;&quot; style=&quot;-webkit-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 +x /path/to/script.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: #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 /path/to/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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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. 如果需要root权限，使用root的crontab&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 crontab -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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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. 或者配置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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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/sudoers.d/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;deploy ALL=(root) NOPASSWD: /usr/bin/systemctl restart 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;/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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;给脚本配置sudo免密码&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;如果确实需要在普通用户的crontab里执行需要root权限的操作，可以这样配置：&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/sudoers.d/cron-scripts&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; 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;deploy ALL=(root) NOPASSWD: /home/deploy/scripts/log_cleanup.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: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 或者允许执行特定命令&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 ALL=(root) NOPASSWD: /usr/bin/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;&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;/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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;然后在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%; 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;0 3 * * * sudo /home/deploy/scripts/log_cleanup.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; 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; text-indent: 0em; text-wrap: 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%; 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;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;每次配置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%; 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;ls -la /path/to/script.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: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查脚本涉及的目录权限&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 /path/to/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;ls -la /path/to/dest/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查脚本里调用的命令是否需要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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;which&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;some_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;ls -la $(&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;which&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;some_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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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用户执行&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 deploy /path/to/script.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;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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 20px; 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;坑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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;这个坑我踩过两次。第一次是在AWS上，服务器时区是UTC，而业务要求北京时间凌晨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(30, 107, 184); 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: 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 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;，结果任务是北京时间上午10点才跑，整整差了8个小时。&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;第二次更狗血。我们有个跨国业务，服务器分布在多个区域。运维同事把配置同步到所有服务器，结果发现东京、新加坡、伦敦的服务器都是当地时间2点执行，而不是北京时间2点。数据同步乱成一团。&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;crontab使用系统时区。不同的是：&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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;li&gt;&lt;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;crond服务读取的是启动时的时区设置&lt;/span&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;修改系统时区后，需要重启crond服务才能生效&lt;/span&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;Docker容器内的时区可能和宿主机不同&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;pre data-tool=&quot;mdnice编辑器&quot; 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;timedatectl&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 设置时区为上海&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 timedatectl&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;-timezone 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;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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;sudo systemctl restart crond &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# CentOS/RHEL&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 restart cron &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;方案二：在crontab里设置TZ变量&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;某些版本的cron支持在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%; 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;TZ=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;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 下面的任务按上海时区执行&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 * * * /path/to/script.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; 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; text-indent: 0em; text-wrap: 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;但要注意，这个特性不是所有cron实现都支持。在使用前最好测试一下。&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;方案三：使用systemd timer（推荐）&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;systemd timer支持更灵活的时区设置：&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/systemd/system/backup.timer&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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=Daily backup timer&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[Timer]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OnCalendar=*-*-* 02:00: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;Persistent=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;[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=timers.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;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;pre data-tool=&quot;mdnice编辑器&quot; 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;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 强制使用指定时区&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;TZ=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;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查当前时间是否在预期范围内&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_HOUR=$(date +%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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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_HOUR&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;02&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 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;WARNING: Expected to run at 02:00, but current hour 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;${CURRENT_HOUR}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;This might indicate a timezone issue&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;...&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;/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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;在Docker容器里跑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%; 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;# Dockerfile中设置时区&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;ubuntu:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;22.04&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #C678DD; 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;&amp;nbsp;TZ=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: #C678DD; line-height: 26px;&quot;&gt;RUN&lt;/span&gt;&lt;span style=&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;&amp;nbsp;ln -snf /usr/share/zoneinfo/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$TZ&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-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/localtime &amp;amp;&amp;amp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;echo&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;$TZ&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; 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; /etc/timezone&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;或者在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%; 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: #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 leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 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;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;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;your-cron-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 leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;TZ=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;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;/etc/localtime:/etc/localtime:ro&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 20px; 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：邮件发送问题&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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(30, 107, 184); 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: 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;/var/spool/mail/&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;目录占了好几个G。打开一看，全是crontab的输出邮件，每分钟执行的任务产生的输出都被存成邮件了。&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;crontab有个&amp;quot;贴心&amp;quot;的设计：默认会把任务的stdout和stderr输出通过邮件发送给用户。如果服务器没有配置邮件服务，或者邮件发不出去，这些邮件就会堆积在本地。&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;在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%; 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;MAILTO=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;pre data-tool=&quot;mdnice编辑器&quot; 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;* * * * * /path/to/script.sh &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;/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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;pre data-tool=&quot;mdnice编辑器&quot; 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;* * * * * /path/to/script.sh &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;/cron/script.log 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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 或者分开记录&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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/to/script.sh &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;/cron/script.log 2&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;/cron/script.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;/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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;pre data-tool=&quot;mdnice编辑器&quot; 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;MAILTO=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;admin@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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 或者多个收件人&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;MAILTO=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;admin@company.com,ops@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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;但这需要服务器正确配置邮件服务（如postfix、sendmail）。&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;# crontab文件开头&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;MAILTO=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;SHELL=/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;PATH=/usr/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;/sbin:/usr/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;/bin:/usr/sbin:/usr/bin:/sbin:/bin&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 每个任务都写入独立的日志文件&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 * * * /home/deploy/scripts/backup.sh &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;/cron/backup.log 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;*/5 * * * * /home/deploy/scripts/monitor.sh &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;/cron/monitor.log 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;/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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;然后配置logrotate来管理这些日志：&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/logrotate.d/cron-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;/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;/cron/*.&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;{&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; daily&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; rotate 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;nbsp; compress&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; delaycompress&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; missingok&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; notifempty&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; create 644 deploy 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;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 20px; 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：脚本路径问题&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;有个同事配置的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%; 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;0 2 * * * 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;/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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;quot;我已经把backup.sh放到/usr/local/bin了，手动执行没问题啊&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;问题在于，crontab执行时的工作目录是用户的HOME目录（或者在crontab里用HOME变量指定的目录），不是/usr/local/bin。虽然PATH里包含/usr/local/bin，能找到backup.sh这个命令，但如果脚本里用了相对路径引用其他文件，就会出问题。&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;crontab的工作目录相关问题：&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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;li&gt;&lt;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;脚本的路径必须是绝对路径或者在PATH中&lt;/span&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;crontab执行时的工作目录默认是用户HOME&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;pre data-tool=&quot;mdnice编辑器&quot; 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;# crontab里使用绝对路径&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 * * * /home/deploy/scripts/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;/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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;pre data-tool=&quot;mdnice编辑器&quot; 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;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 获取脚本所在目录并切换过去&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;SCRIPT_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;$(cd &amp;quot;$(dirname &amp;quot;${BASH_SOURCE[0]}&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;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;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;pwd&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;cd &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;${SCRIPT_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; || exit 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;# 现在可以安全使用相对路径了&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;source ./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 leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;./helper.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&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;方案三：在crontab里先cd再执行&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;0 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: #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;/home/deploy/scripts &amp;amp;&amp;amp; ./backup.sh &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;/backup.log 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;/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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;pre data-tool=&quot;mdnice编辑器&quot; 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: #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;# 获取脚本真实路径（处理软链接情况）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;SCRIPT_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;$(readlink -f &amp;quot;${BASH_SOURCE[0]}&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;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;SCRIPT_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;$(dirname &amp;quot;${SCRIPT_PATH}&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;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;SCRIPT_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;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;$(basename &amp;quot;${SCRIPT_PATH}&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;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: #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;${SCRIPT_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;||&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 定义日志函数&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&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;] [&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${SCRIPT_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;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;Script started from&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${SCRIPT_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;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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 20px; 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;坑6：并发执行问题（flock锁）&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;这个坑是真的痛。我们有个数据同步任务，配置的是每5分钟执行一次。正常情况下执行只需要1-2分钟。但有一天，源数据库响应变慢，同步任务执行时间超过了5分钟。&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;结果呢？每5分钟启动一个新的同步进程，但上一个还没执行完。越积越多，最后服务器直接OOM了。更惨的是，多个同步进程同时写同一份数据，数据全乱了，花了一整天才恢复。&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;crontab不会检查上一次任务是否完成。到了设定的时间，它就会启动新任务，不管之前的还在不在跑。&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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;li&gt;&lt;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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;解决方案：使用flock&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;flock是Linux自带的文件锁工具，可以保证同一时间只有一个实例在运行：&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;# 基本用法：-xn表示获取排他锁，获取不到就退出&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;* * * * * /usr/bin/flock -xn /tmp/myjob.lock /path/to/script.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: #5C6370; font-style: italic; line-height: 26px;&quot;&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;*/5 * * * * /usr/bin/flock -xn -w 10 /tmp/sync.lock /path/to/sync.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: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 完整示例，包含日志&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 * * * * /usr/bin/flock -xn /tmp/sync.lock /home/deploy/scripts/sync.sh &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;/sync.log 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;/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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;flock参数说明&lt;/strong&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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); 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: 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%; color: rgb(0, 0, 0); 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: 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%; color: rgb(0, 0, 0); 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: rgba(204, 204, 204, 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;-x&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;获取排他锁（exclusive lock）&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, 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;-s&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;获取共享锁（shared lock）&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: rgba(204, 204, 204, 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;-n&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;/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, 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;-w N&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;最多等待N秒&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: rgba(204, 204, 204, 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;-E N&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;/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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;在脚本内部使用flock&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;有时候需要更精细的控制，可以在脚本内部使用flock：&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;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;LOCK_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;/tmp/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$(basename &amp;quot;$0&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;.lock&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：整个脚本加锁&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;200&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: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;${LOCK_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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;! flock -xn 200;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;Another instance is running, exiting...&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;Starting...&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 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: #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;Done!&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 锁会在脚本退出时自动释放&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-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: #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 leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;LOCK_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;/tmp/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$(basename &amp;quot;$0&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;.lock&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：使用子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;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;! flock -xn 200;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;Another instance is 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;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;Critical section&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 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 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;) 200&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: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;${LOCK_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;/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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;flock vs 其他方案&lt;/strong&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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); 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: 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%; color: rgb(0, 0, 0); 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: 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%; color: rgb(0, 0, 0); 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: 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%; color: rgb(0, 0, 0); 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: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;flock&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-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(0, 0, 0); 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;PID文件&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-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%; 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: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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）&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-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&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;PID文件方式（不推荐，但有时候需要用）&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: #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 leaf=&quot;&quot; style=&quot;-webkit-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_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;/tmp/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$(basename &amp;quot;$0&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;.pid&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;# 检查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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;${PID_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; OLD_PID=$(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;${PID_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;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查进程是否真的在运行&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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: #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: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;${OLD_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;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;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;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;${OLD_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 still running, exiting...&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;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;Removing stale PID file...&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; rm -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;${PID_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: #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;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;# 写入当前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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;$$ &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;${PID_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;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 确保退出时删除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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;trap&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;rm -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;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_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;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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 执行主逻辑&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;...&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 20px; 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;坑7：日志输出问题&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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;li&gt;&lt;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;stdout和stderr没有区分处理&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;# 每个任务独立日志文件，包含stdout和stderr&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 * * * /path/to/backup.sh &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;/cron/backup.log 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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 错误单独记录&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 * * * /path/to/backup.sh &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;/cron/backup.log 2&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;/cron/backup.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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 使用logger发送到syslog&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 * * * * /path/to/monitor.sh 2&amp;gt;&amp;amp;1 | /usr/bin/logger -t cron-monitor&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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: #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: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 日志配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_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/log/myapp&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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_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;$(basename &amp;quot;$0&amp;quot; .sh)&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;_&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;.log&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;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;${LOG_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 style=&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;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;level=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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:-INFO}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;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: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;] [&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;${level}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 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;&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;log_info&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 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;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;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;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&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_warn&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 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;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;WARN&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;$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;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&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_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;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;ERROR&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;$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;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 重定向所有输出到日志&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;1&amp;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: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;&amp;nbsp;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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 使用示例&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_info&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Script 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;log_info&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Processing 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;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;some_command;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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; log_info&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Command succeeded&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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; log_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: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Command failed with exit 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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;log_info&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Script 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;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;结构化日志（JSON格式）&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;对于需要用ELK等工具分析的日志，使用JSON格式更好：&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;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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; 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_json&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;() {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;level=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;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: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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=$(date -Iseconds)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;hostname=$(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: #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;script_name=$(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;$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;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: #E6C07B; line-height: 26px;&quot;&gt;printf&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 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;timestamp&amp;quot;:&amp;quot;%s&amp;quot;,&amp;quot;level&amp;quot;:&amp;quot;%s&amp;quot;,&amp;quot;host&amp;quot;:&amp;quot;%s&amp;quot;,&amp;quot;script&amp;quot;:&amp;quot;%s&amp;quot;,&amp;quot;message&amp;quot;:&amp;quot;%s&amp;quot;}\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;\&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;${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;${level}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;${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&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;${script_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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;${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 leaf=&quot;&quot; style=&quot;-webkit-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_json&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;Script 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;log_json&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Something went wrong&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;pre data-tool=&quot;mdnice编辑器&quot; 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/logrotate.d/cron-scripts&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;/cron/*.&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;{&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; daily&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; rotate 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; compress&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; delaycompress&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; missingok&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; notifempty&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; create 644 root 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;&amp;nbsp; &amp;nbsp; dateext&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; dateformat -%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; &amp;nbsp; sharedscripts&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; postrotate&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 如果需要的话，在这里重载服务&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; endscript&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 20px; 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;坑8：特殊字符转义问题&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;这个坑比较隐蔽。有一次我在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%; 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;*/5 * * * * /path/to/script.sh --config=/etc/app/config.json 2&amp;gt;&amp;amp;1 | 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;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;/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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;结果任务一直不执行。后来发现，crontab里的&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(30, 107, 184); 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: 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;/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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;在crontab里，&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(30, 107, 184); 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: 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;/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(30, 107, 184); 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: 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;/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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;pre data-tool=&quot;mdnice编辑器&quot; 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;0 2 * * * /path/to/script.sh %arg1%arg2&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;pre data-tool=&quot;mdnice编辑器&quot; 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;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;arg1&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;arg2&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;| /path/to/script.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; 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; text-indent: 0em; text-wrap: 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(30, 107, 184); 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: 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;/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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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(30, 107, 184); 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: 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;/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%; 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;0 * * * * /path/to/script.sh --date=$(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;/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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;与其在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%; 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;# crontab&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 * * * * /path/to/wrapper.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: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# wrapper.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 leaf=&quot;&quot; style=&quot;-webkit-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/to/script.sh --date=$(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;/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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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); 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: 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%; color: rgb(0, 0, 0); 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: 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%; color: rgb(0, 0, 0); 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: 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%; color: rgb(0, 0, 0); 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: rgba(204, 204, 204, 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;/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;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;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-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, 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;/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;/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: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-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(0, 0, 0); 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;/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;如果要literal $，用&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;\$&lt;/code&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;*/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: #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;Current 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;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 +%H:%M)&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;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;/time.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;*/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: #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;Current 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;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 +\%H:\%M)&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;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;/time.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;*/5 * * * * /home/deploy/scripts/log_time.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;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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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-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(0, 0, 0) 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 22px; 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&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 20px; 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 日志查看&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;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%; 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;# CentOS/RHEL/Rocky Linux&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 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;/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;sudo 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;/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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 grep CRON /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;/syslog&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 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;/syslog | grep 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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 使用journalctl（systemd系统）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 crond -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;# CentOS&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 cron -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;# Ubuntu&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;pre data-tool=&quot;mdnice编辑器&quot; 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;Jan &amp;nbsp;7 02:00:01 hostname CROND[12345]: (username) CMD (/path/to/script.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;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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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;li&gt;&lt;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;进程名和PID&lt;/span&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;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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 20px; 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 问题排查流程&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;当crontab任务不执行时，按照这个流程排查：&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;第一步：确认crond服务正在运行&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 leaf=&quot;&quot; style=&quot;-webkit-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 crond &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# CentOS&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 cron &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 如果没运行，启动它&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 crond&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;第二步：检查crontab配置语法&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;# 查看当前用户的crontab&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 -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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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://crontab.guru&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;sudo 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;script.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;/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;/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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 如果没有执行记录，可能是时间表达式问题或服务问题&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 如果有执行记录但任务没正确完成，需要看任务自己的日志&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;sudo -u deploy /path/to/script.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: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 模拟crontab环境测试&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 -i PATH=/usr/bin:/bin HOME=/home/deploy SHELL=/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;&amp;nbsp; &amp;nbsp; /bin/bash /path/to/script.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; 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; text-indent: 0em; text-wrap: 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%; 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;ls -la /path/to/script.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: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 涉及的目录权限&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 /path/to/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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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的权限&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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/cron.allow&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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/cron.deny&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;env &amp;gt; /tmp/cron_env_debug.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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;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: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;gt; /tmp/cron_env_debug.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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;PWD:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;$PWD&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;gt; /tmp/cron_env_debug.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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;HOME:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;&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;gt; /tmp/cron_env_debug.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;/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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 20px; 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 常见问题速查表&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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); 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: 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%; color: rgb(0, 0, 0); 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: 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%; color: rgb(0, 0, 0); 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: 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%; color: rgb(0, 0, 0); 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: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-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;crond未运行&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 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;systemctl status crond&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, 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;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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.guru验证&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: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-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;检查cron.allow/cron.deny&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, 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;手动能跑，crontab不行&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-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;检查PATH&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: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-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(0, 0, 0); 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;手动能跑，crontab不行&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-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;检查sudo配置&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: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-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(0, 0, 0); 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;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;使用flock&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: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-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(0, 0, 0); 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;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;设置MAILTO=&amp;quot;&amp;quot;&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 20px; 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.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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;方法一：使用Healthchecks.io&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;Healthchecks.io是一个免费的定时任务监控服务。原理是给每个任务分配一个URL，任务执行完ping一下这个URL，如果超时没收到ping就告警。&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;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 脚本开头&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;HEALTHCHECK_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://hc-ping.com/your-uuid-here&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 告知开始执行&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 -fsS -m 10 --retry 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;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;${HEALTHCHECK_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;/start&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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 执行主逻辑&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;do_something&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 根据执行结果发送不同信号&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;[ $? -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 leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 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 -fsS -m 10 --retry 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;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;${HEALTHCHECK_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&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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; curl -fsS -m 10 --retry 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;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;${HEALTHCHECK_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;/fail&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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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 + Alertmanager&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;pre data-tool=&quot;mdnice编辑器&quot; 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;# cron_exporter.sh - 记录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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_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/lib/prometheus/cron_metrics.prom&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;JOB_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;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;START_TIME=$(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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 执行实际任务&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;EXIT_CODE=$?&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;END_TIME=$(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;DURATION=$((END_TIME - START_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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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;cat &amp;gt;&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;${METRICS_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;.tmp&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; 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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# HELP cron_job_exit_code Exit code of the last cron job 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: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# TYPE cron_job_exit_code gauge&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_job_exit_code{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;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;${JOB_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;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;${EXIT_CODE}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# HELP cron_job_duration_seconds Duration of the last cron job 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: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# TYPE cron_job_duration_seconds gauge&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_job_duration_seconds{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;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;${JOB_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;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;${DURATION}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# HELP cron_job_last_run_timestamp_seconds Timestamp of the last cron job 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: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# TYPE cron_job_last_run_timestamp_seconds gauge&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_job_last_run_timestamp_seconds{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;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;${JOB_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;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;${END_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;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 leaf=&quot;&quot; style=&quot;-webkit-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&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;${METRICS_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;.tmp&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;${METRICS_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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;${EXIT_CODE}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;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%; 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;*/5 * * * * /usr/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;/bin/cron_exporter.sh backup /home/deploy/scripts/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;/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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;pre data-tool=&quot;mdnice编辑器&quot; 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;# check_cron_jobs.sh - 检查关键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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;https://hooks.slack.com/services/xxx&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&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_last_run&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;() {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;marker_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;$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;max_age_minutes=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;job_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;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;${marker_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; 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;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;Cron job &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;${job_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; marker file not found!&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;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;file_age=$(( ($(date +%s) - $(&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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 %Y&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;${marker_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;)) / 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 leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;${file_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;&amp;nbsp;-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;${max_age_minutes}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 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;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;Cron job &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;${job_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; last ran&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_age}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;minutes ago (threshold:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_age_minutes}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;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; curl -s -X POST -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;#39;Content-type: application/json&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; &amp;nbsp; &amp;nbsp; &amp;nbsp; --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: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-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;text\&amp;quot;:\&amp;quot;[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: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;}&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;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;&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;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查各个任务&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;check_last_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: #98C379; line-height: 26px;&quot;&gt;&amp;quot;/var/run/backup_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;&amp;nbsp;1500&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Daily Backup&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;# 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;check_last_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: #98C379; line-height: 26px;&quot;&gt;&amp;quot;/var/run/sync_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;&amp;nbsp;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 !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;Data Sync&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; 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;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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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-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(0, 0, 0) 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 22px; 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;六、systemd timer vs crontab对比（2025年推荐）&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;说了这么多crontab的坑，你可能会问：有没有更好的选择？&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;答案是有的：systemd timer。&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 20px; 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;6.1 为什么要考虑systemd timer&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;systemd timer从2010年代中期开始就被引入主流Linux发行版，到了2025年，它已经相当成熟了。很多人还在用crontab，主要是因为习惯和惯性。但如果你开始一个新项目，我建议认真考虑systemd timer。&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 20px; 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;6.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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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); 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: 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%; color: rgb(0, 0, 0); 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: 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%; color: rgb(0, 0, 0); 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;crontab&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%; color: rgb(0, 0, 0); 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;systemd timer&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: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-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(0, 0, 0); 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;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-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: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-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;集成到journald，便于查询&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, 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;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-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: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-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;支持CPU/内存/IO限制&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, 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;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Persistent选项可以补执行&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: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-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;支持RandomizedDelaySec&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, 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;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-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: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-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;需要两个文件（.service + .timer）&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, 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;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-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: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-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;几乎所有Unix/Linux&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;/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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 20px; 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;6.3 systemd timer使用示例&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;pre data-tool=&quot;mdnice编辑器&quot; 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/systemd/system/backup.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=Daily Database 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;After=network.target mysql.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=oneshot&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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=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;ExecStart=/home/deploy/scripts/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;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;# 资源限制&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;MemoryMax=1G&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;CPUQuota=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 leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 安全沙箱&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ProtectSystem=strict&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ProtectHome=read-only&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;PrivateTmp=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; 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; text-indent: 0em; text-wrap: 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;pre data-tool=&quot;mdnice编辑器&quot; 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/systemd/system/backup.timer&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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=Run backup daily at 2am&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;[Timer]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OnCalendar=*-*-* 02:00: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;Persistent=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;# 随机延迟0-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;RandomizedDelaySec=1800&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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=timers.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;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;pre data-tool=&quot;mdnice编辑器&quot; 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;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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 启用并启动定时器&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;backup.timer&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 backup.timer&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看状态&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 backup.timer&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 list-timers --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;/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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 20px; 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;6.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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;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%; 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;# 每天凌晨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;0 2 * * * /path/to/script.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; 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; text-indent: 0em; text-wrap: 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;systemd OnCalendar语法：&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;# 每天凌晨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;OnCalendar=*-*-* 02:00: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;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OnCalendar=Mon..Fri *-*-* 09:00: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;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;# 每周一和周四&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OnCalendar=Mon,Thu *-*-* 00:00: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;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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号和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;OnCalendar=*-*-01,15 00:00: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;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;OnCalendar=*: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;/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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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(30, 107, 184); 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: 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;systemd-analyze calendar&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%; 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;$ systemd-analyze calendar&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&amp;quot;*-*-* 02:00: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; Original form: *-*-* 02:00: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;Normalized form: *-*-* 02:00: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;&amp;nbsp; &amp;nbsp; Next elapse: Wed 2025-01-08 02:00:00 CST&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-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: #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;UTC): Tue 2025-01-07 18:00:00 UTC&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;From now: 17h 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;/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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 20px; 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;6.5 我的2025年建议&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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;li&gt;&lt;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%; 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;：优先使用systemd timer，特别是需要以下特性时：&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); 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;li&gt;&lt;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;li&gt;&lt;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%; 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;：如果crontab用得好好的，没必要迁移。但遇到crontab解决不了的问题时，考虑systemd timer。&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%; 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;：如果是Kubernetes，用CronJob；如果是Docker，可以考虑supercronic或者直接用系统cron。&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%; 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;：如果就是一个简单的日志清理，crontab足够了，不用杀鸡用牛刀。&lt;/span&gt;&lt;/p&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%; 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-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(0, 0, 0) 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 22px; 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&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 20px; 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;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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;这篇文章讲了8个crontab的常见坑：&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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;li&gt;&lt;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(0, 0, 0); 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;：crontab执行环境和交互式shell不同，PATH可能不完整&lt;/span&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(0, 0, 0); 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(0, 0, 0); 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;：一定要确认系统时区，修改后记得重启crond&lt;/span&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(0, 0, 0); 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;：设置MAILTO=&amp;quot;&amp;quot;避免邮件堆积&lt;/span&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(0, 0, 0); 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(0, 0, 0); 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;：使用flock防止任务重复执行&lt;/span&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(0, 0, 0); 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;：规范化日志输出，配置logrotate&lt;/span&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(0, 0, 0); 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;/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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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;li&gt;&lt;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;在crontab开头设置SHELL、PATH、MAILTO&lt;/span&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;重要任务使用flock加锁&lt;/span&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;定期备份crontab配置&lt;/span&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;对于新项目，考虑使用systemd timer&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 20px; 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;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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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;li&gt;&lt;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(0, 0, 0); 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;systemd timer&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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(0, 0, 0); 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;Kubernetes CronJob&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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(0, 0, 0); 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 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); 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;Airflow（数据工程常用）&lt;/span&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;XXL-JOB（国内Java生态常用）&lt;/span&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;Celery Beat（Python生态）&lt;/span&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;Temporal（新一代工作流引擎）&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); 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(0, 0, 0); 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;/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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 20px; 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;7.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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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;li&gt;&lt;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;crontab(5) man page：&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(30, 107, 184); 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; 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: 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;man 5 crontab&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); 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;crond(8) man page：&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(30, 107, 184); 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; 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: 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;man 8 crond&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); 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;systemd.timer(5) man page：&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(30, 107, 184); 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; 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: 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;man 5 systemd.timer&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); 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;crontab.guru：https://crontab.guru&lt;/span&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;Healthchecks.io：https://healthchecks.io&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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-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(0, 0, 0) 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 22px; 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&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 20px; 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;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;# crontab基本操作&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 -l &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 列出当前用户的定时任务&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 -e &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 编辑定时任务&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 -r &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 删除所有定时任务（危险！）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 -ri &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 删除前确认&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 file &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 从文件导入&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 crontab -u user -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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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;systemctl status crond &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# CentOS/RHEL&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 cron &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 crond&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 日志查看&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;/cron &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# CentOS/RHEL&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;/syslog | grep CRON &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 crond -f &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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日志&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 文件锁&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;flock -xn /tmp/job.lock&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; 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: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 排他锁，非阻塞&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;flock -x /tmp/job.lock&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; 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: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 排他锁，阻塞等待&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;flock -xn -w 10 /tmp/job.lock&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; 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: #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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 环境测试&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 -i PATH=/usr/bin:/bin bash script.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;# 模拟crontab环境&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 时区&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;timedatectl &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;timedatectl&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;-timezone Asia/Shanghai &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 设置时区&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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 timer&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 list-timers --all &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 列出所有定时器&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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-analyze calendar&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 验证时间表达式&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 20px; 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;B. 时间表达式速查&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;# crontab格式&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 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;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; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 每分钟&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 * * * *&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; 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;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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;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: #E6C07B; 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;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 每小时整点&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 * * *&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; 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;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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;0 2 * * 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: #E6C07B; 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;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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;0 2 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: #E6C07B; 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;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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 leaf=&quot;&quot; style=&quot;-webkit-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 1 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: #E6C07B; 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;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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月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;0 9-18 * * 1-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: #E6C07B; 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: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 工作日9-18点每小时&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 * * 1,3,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: #E6C07B; 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;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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;# 特殊字符串（部分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;@reboot &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; 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;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 系统启动时执行&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;@yearly &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; 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;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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 0 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;@monthly &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; 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;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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 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;@weekly &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; 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;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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 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;@daily &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; 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;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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 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;@hourly &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; 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;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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 * * * *&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 20px; 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;C. crontab配置文件模板&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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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 Configuration 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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Author: Your 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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Last Updated: YYYY-MM-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: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# ============================================&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 全局设置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;SHELL=/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;PATH=/usr/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;/sbin:/usr/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;/bin:/usr/sbin:/usr/bin:/sbin:/bin&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;MAILTO=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;HOME=/home/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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# ============================================&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 系统维护任务&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# ============================================&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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;0 3 * * * /usr/bin/flock -xn /tmp/log_cleanup.lock /home/deploy/scripts/log_cleanup.sh &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;/cron/log_cleanup.log 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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# ============================================&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 数据备份任务&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# ============================================&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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;0 2 * * * /usr/bin/flock -xn /tmp/db_backup.lock /home/deploy/scripts/db_backup.sh &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;/cron/db_backup.log 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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# ============================================&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 监控检查任务&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# ============================================&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 健康检查（每分钟）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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/deploy/scripts/health_check.sh &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;/cron/health_check.log 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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# ============================================&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 业务任务&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# ============================================&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 添加你的业务任务...&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 20px; 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;D. 术语表&lt;/span&gt;&lt;/span&gt;&lt;/h3&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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;br/&gt;&lt;/mpcpc&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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); 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: 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%; color: rgb(0, 0, 0); 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: 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%; color: rgb(0, 0, 0); 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: 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%; color: rgb(0, 0, 0); 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: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;源自希腊语chronos（时间），Unix/Linux下的定时任务服务&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, 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;crontab&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 table&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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的配置文件，存储定时任务列表&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: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;crond&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 daemon&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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的守护进程&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, 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;cron expression&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-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: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-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;file 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: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-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, 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;flock&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 lock command&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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下的文件锁命令&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: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 timer&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 timer&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;/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, 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;working directory&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-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: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-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;environment variable&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-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, 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;timezone&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-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;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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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-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(0, 0, 0) 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;如果你还有其他关于crontab的问题，欢迎讨论。定时任务看似简单，但要用好、用稳，还是需要花一些功夫的。&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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-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.kubernetes.top/zb_users/upload/2026/02/202602281057385528850.png&quot; alt=&quot;image.png&quot; width=&quot;508&quot; height=&quot;175&quot; style=&quot;width: 508px; height: 175px;&quot;/&gt;&lt;/span&gt;&lt;/section&gt;</description><pubDate>Wed, 11 Feb 2026 10:52:56 +0800</pubDate></item><item><title>Ingress NGINX：来自 Kubernetes 指导委员会和安全响应委员会的声明</title><link>https://www.kubernetes.top/?id=451</link><description>&lt;section style=&quot;text-align: center;&quot; nodeleaf=&quot;&quot;&gt;&lt;img src=&quot;https://www.kubernetes.top/zb_users/upload/2026/02/202602281050558863407.png&quot; alt=&quot;3bad3e387994a0475a7abba434db25e8.png&quot; width=&quot;730&quot; height=&quot;433&quot; style=&quot;width: 730px; height: 433px;&quot;/&gt;&lt;/section&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;font-size: 14px; line-height: 1.8em; letter-spacing: 0em; text-align: justify; text-indent: 0em; margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; visibility: visible;&quot; data-pm-slice=&quot;0 0 []&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;visibility: visible;&quot;&gt;作者：Kat Cosgrove（指导委员会）&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;font-size: 14px; line-height: 1.8em; letter-spacing: 0em; text-align: justify; text-indent: 0em; margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;visibility: visible;&quot;&gt;2026 年 3 月，Kubernetes 将停止支持 Ingress NGINX，这个关键组件目前约有一半的云原生环境在使用。项目停止支持的消息已提前多年公开提醒，因项目急需贡献者和维护者。项目停止后，将不再发布任何漏洞修复、安全补丁或其他更新。这个问题不能被忽视、推脱或拖到最后一分钟才处理。我们不得不强调事态的严重性，以及立即开始迁移到 Gateway API 或其他第三方 Ingress 控制器等替代方案的重要性。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;font-size: 14px; line-height: 1.8em; letter-spacing: 0em; text-align: justify; text-indent: 0em; margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;visibility: visible;&quot;&gt;明确说明：在 Ingress NGINX 停止支持后继续使用，将使你和你的用户面临安全攻击风险。现有替代方案都不是直接替换品，迁移需要时间和工程资源。大约一半的用户会受到影响。你只有两个月的准备时间。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;font-size: 14px; line-height: 1.8em; letter-spacing: 0em; text-align: justify; text-indent: 0em; margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;visibility: visible;&quot;&gt;现有部署会继续运行，除非主动检查，否则可能在被攻击后才发现受影响。大部分情况下，可以通过集群管理员权限执行以下命令检查是否依赖 Ingress NGINX：&lt;/span&gt;&lt;/p&gt;&lt;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px; visibility: visible;&quot;&gt;&lt;code style=&quot;overflow-x: auto; padding: 16px; color: rgb(51, 51, 51); background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; display: -webkit-box; font-family: &amp;quot;Operator Mono&amp;quot;, Consolas, Monaco, Menlo, monospace; border-radius: 0px; font-size: 12px; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;visibility: visible;&quot;&gt;kubectl get pods --all-namespaces --selector app.kubernetes.io/name=ingress-nginx&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;visibility: visible;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;font-size: 14px; line-height: 1.8em; letter-spacing: 0em; text-align: justify; text-indent: 0em; margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;visibility: visible;&quot;&gt;尽管 Ingress NGINX 广受欢迎，被各种规模的公司广泛使用，且维护者多次呼吁帮助，但项目一直缺乏足够的贡献者。根据 &lt;span class=&quot;&quot; link-id=&quot;link-1772247020705-0.9856574969974587&quot;&gt;Datadog&lt;/span&gt; 内部研究，约 50% 的云原生环境依赖此工具，但近几年仅由一两名维护者业余时间维护。缺乏足够人员保障工具安全，最负责任的选择是逐步停止维护，转向 Gateway API 等现代方案。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;font-size: 14px; line-height: 1.8em; letter-spacing: 0em; text-align: justify; text-indent: 0em; margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;visibility: visible;&quot;&gt;我们做出这个决定并非轻率。虽然现在看来不便，但为了所有用户和整个生态系统的安全，这是必要的。不幸的是，Ingress NGINX 设计时的灵活性曾是一大优势，但现在成了难以解决的负担。技术债务积累和设计缺陷导致安全隐患不断，哪怕有资源也难以继续维护。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;font-size: 14px; line-height: 1.8em; letter-spacing: 0em; text-align: justify; text-indent: 0em; margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;visibility: visible;&quot;&gt;我们联合发布此声明，强调这一变化的规模及忽视问题带来的严重风险。请务必立即检查你的集群。如果依赖 Ingress NGINX，必须尽快开始迁移计划。&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;font-size: 14px; line-height: 1.8em; letter-spacing: 0em; text-align: justify; text-indent: 0em; margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;visibility: visible;&quot;&gt;感谢大家，&lt;/span&gt;&lt;/p&gt;&lt;p data-tool=&quot;mdnice编辑器&quot; style=&quot;font-size: 14px; line-height: 1.8em; letter-spacing: 0em; text-align: justify; text-indent: 0em; margin-top: 0px; margin-bottom: 0px; padding: 8px 0px; visibility: visible;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;visibility: visible;&quot;&gt;Kubernetes 指导委员会&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;visibility: visible;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;visibility: visible;&quot;&gt;Kubernetes 安全响应委员会&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-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.kubernetes.top/zb_users/upload/2026/02/202602281051302380551.png&quot; alt=&quot;image.png&quot; width=&quot;555&quot; height=&quot;187&quot; style=&quot;width: 555px; height: 187px;&quot;/&gt;&lt;/span&gt;&lt;/section&gt;</description><pubDate>Mon, 02 Feb 2026 10:50:04 +0800</pubDate></item><item><title>运维必知的OSI七层模型：网络故障排查的底层逻辑</title><link>https://www.kubernetes.top/?id=450</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.kubernetes.top/zb_users/upload/2026/01/202601211100231411663.jpg&quot; alt=&quot;a005d2f20f6af2ce4ebd807d7e871824.jpg&quot; width=&quot;604&quot; height=&quot;353&quot; style=&quot;width: 604px; height: 353px;&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: wrap; background-color: rgb(255, 255, 255); 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%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 24px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block; 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;/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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;干了十年运维，我发现一个有意思的现象：很多同行在排查网络问题时，喜欢凭经验乱试。ping不通就重启网卡，连接超时就加timeout，服务挂了就重启容器。这种&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;OSI七层模型这东西，大学课本里都讲过，但说实话，当年我也觉得这玩意儿太理论了，实际工作中用不上。直到有一次，线上出了个诡异的问题：用户反馈访问慢，但服务端日志看着一切正常，监控指标也没啥异常。折腾了大半夜，最后发现是机房交换机的一个端口出了问题，偶发丢包。&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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; style=&quot;-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;OSI模型&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;不是什么高深的理论，它就是一套分层排查的方法论。你把网络通信拆成七层，从下往上一层层排查，问题自然就能定位出来。&lt;/span&gt;&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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;br/&gt;&lt;/mpcpc&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: wrap; background-color: rgb(255, 255, 255); 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%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 20px; color: #000000; line-height: 1.5em; letter-spacing: 0em; text-align: left; font-weight: bold; display: block; 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;为什么运维必须掌握OSI模型&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;现在云原生、微服务、Service Mesh这些东西已经成了标配。网络环境比以前复杂了不知道多少倍。以前一台服务器部署一个应用，网络问题相对简单。现在呢，一个请求可能要经过Ingress、Service、Sidecar、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; 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; text-indent: 0em; text-wrap: 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;复杂归复杂，但网络通信的本质没变。不管你用的是Kubernetes还是传统架构，数据包该怎么封装还是怎么封装，TCP三次握手该怎么做还是怎么做。掌握了OSI模型的底层逻辑，再复杂的网络问题你也能有条不紊地排查。&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 20px; 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;OSI模型与TCP/IP模型的关系&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;实际工作中，我们更常用的是TCP/IP四层模型，它把OSI的七层简化成了四层：&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;OSI七层模型 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;TCP/IP四层模型 &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;应用层 &amp;nbsp; (7) &amp;nbsp; ─┐&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;表示层 &amp;nbsp; (6) &amp;nbsp; ─┼─ &amp;nbsp; 应用层 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;HTTP、DNS、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; (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;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;传输层 &amp;nbsp; (4) &amp;nbsp; ─── &amp;nbsp; 传输层 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;TCP、UDP、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; (3) &amp;nbsp; ─── &amp;nbsp; 网络层 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IP、ICMP&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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) &amp;nbsp;─┐&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-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;nbsp; ─┘ &amp;nbsp; &amp;nbsp;网络接口层 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;以太网、WiFi&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;但我建议大家还是要理解OSI的七层划分。因为在实际排查问题时，七层模型的划分更细致，能帮你更精准地定位问题所在。比如TLS握手失败，按TCP/IP模型都算应用层的事儿，但按OSI模型来看，这其实是表示层（加密）和会话层（会话建立）的问题。&lt;/span&gt;&lt;/p&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 22px; 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;OSI七层模型详解：运维视角&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 20px; 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;第一层：物理层（Physical Layer）&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;物理层是最底层，负责的是比特流的传输，说白了就是0和1怎么通过物理介质传输出去。&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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;li&gt;&lt;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;li&gt;&lt;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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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;li&gt;&lt;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;li&gt;&lt;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;双工模式是否匹配（全双工vs半双工）&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;物理层的问题往往表现得很诡异。我见过一个案例，某台服务器偶发性地出现网络抖动，丢包率大概在1%左右。查了半天，最后发现是网线水晶头氧化了，接触不良。换了根新网线就好了。&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;ip link 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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看网卡详细信息（包括速率、双工模式）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ethtool 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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 输出示例&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;Settings&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;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; Supported ports: [ TP ]&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; Supported link modes: &amp;nbsp; 10baseT/Half 10baseT/Full&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !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; 100baseT/Half 100baseT/Full&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !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; 1000baseT/Full&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; Speed: 1000Mb/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; Duplex: Full&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; Link detected: yes&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看网卡统计信息（错误包、丢包等）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ethtool -S 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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看网卡驱动信息&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ethtool -i 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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查网线连接状态&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 /sys/class/net/eth0/carrier&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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表示连接，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 leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ethtool -t eth0 online&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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;li&gt;&lt;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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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; style=&quot;-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;CRC&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;错误或帧错误&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;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 20px; 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;第二层：数据链路层（Data Link Layer）&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;数据链路层负责在相邻节点之间传输数据帧。这一层最重要的概念是MAC地址和以太网帧。&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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;li&gt;&lt;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;MAC地址&lt;/span&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;ARP协议（IP到MAC的映射）&lt;/span&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;VLAN（虚拟局域网）&lt;/span&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;交换机的MAC地址学习和转发&lt;/span&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;生成树协议（STP）&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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;li&gt;&lt;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;ARP表是否正确&lt;/span&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;是否有ARP欺骗&lt;/span&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;VLAN配置是否正确&lt;/span&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;MAC地址表是否溢出&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;数据链路层的问题通常发生在局域网内部。最常见的就是ARP相关的问题。&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;# 查看MAC地址&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 link show eth0 | grep ether&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看ARP缓存表&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 neigh 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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 或者用旧命令&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;arp -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;# 清除ARP缓存&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 neigh flush 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;# 手动添加ARP条目（静态绑定）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 neigh add 192.168.1.100 lladdr 00:11:22:33:44:55 dev 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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看网桥信息（在容器环境中很有用）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;bridge link 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;bridge fdb 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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 抓取ARP包&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;tcpdump -i eth0 arp -nn&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看VLAN配置（如果配置了VLAN）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 -d link show eth0.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;# Cisco交换机示例&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 mac address-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;show spanning-tree&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;实战案例：ARP缓存导致的通信故障&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;前几年遇到过一个问题，某台服务器更换了网卡，MAC地址变了，但同网段的其他服务器上的ARP缓存还是旧的MAC地址。结果就是这台服务器能ping通网关，但ping不通同网段的其他机器。&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;解决方法很简单，在其他服务器上清除一下ARP缓存，或者等ARP缓存自动过期（一般是几分钟）。但如果是紧急情况，手动清除最快：&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;# 清除特定IP的ARP缓存&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 neigh del 192.168.1.100 dev 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: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 或者&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;arp -d 192.168.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;/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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 20px; 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;第三层：网络层（Network Layer）&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;网络层负责端到端的数据包传输，核心就是IP协议。这一层要处理的是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; 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; text-indent: 0em; text-wrap: 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%; 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;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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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;li&gt;&lt;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;IP地址（IPv4、IPv6）&lt;/span&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;子网划分和CIDR&lt;/span&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;ICMP协议（ping、traceroute的基础）&lt;/span&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;IP分片和MTU&lt;/span&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;NAT（网络地址转换）&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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;li&gt;&lt;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;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;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;li&gt;&lt;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;MTU设置是否合适&lt;/span&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;NAT规则是否生效&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;网络层是日常运维中打交道最多的一层。IP不通、路由不对、NAT有问题，都属于这一层。&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;# 查看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;ip addr 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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看路由表&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 route 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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 或&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;route -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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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;ip route get 8.8.8.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;# 添加静态路由&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 route add 10.0.0.0/8 via 192.168.1.1 dev 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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看NAT规则&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 -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;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 或者用nftables&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nft list table nat&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# ping测试（ICMP）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 -c 4 192.168.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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# traceroute（跟踪路由路径）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;traceroute 8.8.8.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: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 或者用mtr（更好用）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;mtr -r -c 10 8.8.8.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;# 查看MTU&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 link show eth0 | grep mtu&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 测试MTU（发送特定大小的包，不允许分片）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 -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: #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;&amp;nbsp;-s 1472 192.168.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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 如果MTU是1500，去掉IP头20字节和ICMP头8字节，最大负载是1472&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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;cat /proc/sys/net/ipv4/ip_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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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 leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-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;gt; /proc/sys/net/ipv4/ip_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;/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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;MTU问题深度解析&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;MTU（Maximum Transmission Unit）是网络层非常重要但经常被忽视的配置。以太网默认MTU是1500字节，但在某些场景下需要调整：&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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;li&gt;&lt;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;VPN隧道：需要降低MTU来为封装头留空间&lt;/span&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;VXLAN/GENEVE：同上，需要预留50字节左右&lt;/span&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;巨型帧（Jumbo Frame）：在高性能场景下可以设置到9000&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;MTU问题最坑的地方在于，小包能通，大包不通。因为小于MTU的包不需要分片，能正常传输；大于MTU的包需要分片，如果路径上有设备不支持或者DF（Don&amp;#39;t Fragment）标志被设置，就会丢包。&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;# 调整MTU&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 link&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;eth0 mtu 1400&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查路径MTU（Path MTU Discovery）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;tracepath 8.8.8.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;# 抓包看MTU问题&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;tcpdump -i eth0&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 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;icmp[0] == 3 and icmp[1] == 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;-nn&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 这个过滤器抓取ICMP &amp;quot;需要分片但DF被设置&amp;quot; 的消息&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 20px; 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;第四层：传输层（Transport Layer）&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;传输层负责端到端的连接管理和数据传输控制。主要协议是TCP和UDP，2025年还有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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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;li&gt;&lt;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;TCP协议（三次握手、四次挥手、流控、拥塞控制）&lt;/span&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;UDP协议&lt;/span&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;QUIC协议（基于UDP，HTTP/3的传输层）&lt;/span&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;连接状态（ESTABLISHED、TIME_WAIT等）&lt;/span&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;Socket缓冲区&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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;li&gt;&lt;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;TIME_WAIT是否过多&lt;/span&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;TCP参数是否优化&lt;/span&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;是否有半连接攻击（SYN Flood）&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;quot;连接超时&amp;quot;、&amp;quot;连接被拒绝&amp;quot;、&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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 -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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 或&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;netstat -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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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 -tan&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看连接状态统计&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;# 按状态统计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 -tan | 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&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看特定端口的连接&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 -tan&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 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;sport = :80&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;# 查看连接到特定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;ss -tan&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 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;dst 192.168.1.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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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连接的详细信息（包括RTT、拥塞窗口等）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 -ti&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; 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;cat /proc/net/sockstat&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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;sysctl -a | grep 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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 测试端口连通性&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 192.168.1.100 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: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 或者用telnet&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 192.168.1.100 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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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;netstat -s | grep -i retrans&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 或&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 -ti | grep retrans&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;TCP连接状态详解&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;理解TCP连接状态对排查问题非常重要：&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;状态 &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;LISTEN &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;SYN_SENT &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 已发送SYN，等待响应 &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;SYN_RECV &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 收到SYN，已回复SYN+ACK &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;ESTABLISHED &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;FIN_WAIT_1 &amp;nbsp; &amp;nbsp; &amp;nbsp; 已发送FIN，等待ACK &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;FIN_WAIT_2 &amp;nbsp; &amp;nbsp; &amp;nbsp; 收到FIN的ACK，等待对端FIN &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;TIME_WAIT &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;等待2MSL，确保对端收到最后的ACK &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;CLOSE_WAIT &amp;nbsp; &amp;nbsp; &amp;nbsp; 收到FIN，等待本地关闭 &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;LAST_ACK &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 已发送FIN，等待最后的ACK &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;CLOSED &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;/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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;TIME_WAIT过多的处理&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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反向代理）经常遇到TIME_WAIT过多的问题。TIME_WAIT会占用端口和内存，虽然每个占用的资源不多，但量大了也是问题。&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;# 查看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 -tan 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;# 优化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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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: #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;1 &amp;gt; /proc/sys/net/ipv4/tcp_tw_reuse&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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等待时间（不建议修改，默认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: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# echo 30 &amp;gt; /proc/sys/net/ipv4/tcp_fin_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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 增加本地端口范围&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;1024 65535&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; 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; /proc/sys/net/ipv4/ip_local_port_range&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;262144 &amp;gt; /proc/sys/net/ipv4/tcp_max_tw_buckets&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;CLOSE_WAIT泄漏问题&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;CLOSE_WAIT是个危险信号，说明对端已经关闭了连接，但本地应用没有关闭。这通常是应用代码的bug，比如HTTP客户端没有正确关闭响应体。&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;# 找出CLOSE_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 -tanp state close-wait | 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 $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;| sort | uniq -c | sort -rn | 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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看某个进程的CLOSE_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 -tanp state close-wait | 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;pid=12345&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 20px; 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;第五层：会话层（Session Layer）&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;会话层负责建立、管理和终止会话。在TCP/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; 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; text-indent: 0em; text-wrap: 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%; 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;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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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;li&gt;&lt;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;TLS/SSL握手&lt;/span&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;会话保持（Keep-Alive）&lt;/span&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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;li&gt;&lt;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;TLS握手是否成功&lt;/span&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;Keep-Alive是否正确配置&lt;/span&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;# 测试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;openssl s_client -connect example.com:443 -servername 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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看证书详情&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 s_client -connect example.com:443 -servername example.com 2&amp;gt;/dev/null | openssl x509 -noout -text&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看证书过期时间&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 s_client -connect example.com:443 -servername example.com 2&amp;gt;/dev/null | openssl x509 -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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 验证证书链&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 s_client -connect example.com:443 -servername example.com -showcerts&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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版本&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 s_client -connect example.com:443 -tls1_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;openssl s_client -connect example.com:443 -tls1_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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 测试支持的加密套件&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;nmap --script ssl-enum-ciphers -p 443 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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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测试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;curl -vvv https://example.com 2&amp;gt;&amp;amp;1 | 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;SSL connection&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;/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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;TLS证书问题是运维中非常常见的一类问题。常见的有：&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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;li&gt;&lt;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;li&gt;&lt;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;客户端不信任CA&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%; 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;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: #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;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;${2:-443}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;$HOST&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-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;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;cert_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: #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;| openssl s_client -connect&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;$HOST&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;-servername&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;$HOST&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;# 检查连接是否成功&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;[ $? -ne 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 leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;无法建立TLS连接&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;cert=$(&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;$cert_info&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;| openssl x509 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;# 检查过期时间&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;$cert&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;| openssl x509 -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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查域名&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;$cert&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;| openssl x509 -noout -subject -ext subjectAltName&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查颁发者&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;$cert&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;| openssl x509 -noout -issuer&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 验证证书链&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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 leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;| openssl s_client -connect&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;$HOST&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;-servername&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;$HOST&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;&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;Verify|depth&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 20px; 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;第六层：表示层（Presentation Layer）&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;表示层负责数据的编码、解码、加密、解密、压缩等。这一层在OSI模型中相对独立，但在实际应用中通常与应用层合并。&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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;li&gt;&lt;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;数据编码（UTF-8、Base64等）&lt;/span&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;数据序列化（JSON、Protocol Buffers、MessagePack）&lt;/span&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;数据压缩（gzip、brotli、zstd）&lt;/span&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;数据加密（AES、RSA等）&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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;li&gt;&lt;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;li&gt;&lt;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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;# 检查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;curl -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;Accept-Encoding: gzip, deflate, br&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-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 https://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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看响应头中的内容编码&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 -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;Accept-Encoding: gzip&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-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 -D - https://example.com -o /dev/null | grep -i content-encoding&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 解压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;curl -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;Accept-Encoding: gzip&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-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 https://example.com | gunzip&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查文件编码&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 -bi some_file.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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 转换字符编码&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;iconv -f GBK -t UTF-8 input.txt &amp;gt; output.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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看二进制数据的十六进制&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;xxd some_file | 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;# 或&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;hexdump -C some_file | 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 data-tool=&quot;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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 20px; 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;第七层：应用层（Application Layer）&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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;li&gt;&lt;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;HTTP/HTTPS/HTTP2/HTTP3&lt;/span&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;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: 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;FTP/SFTP&lt;/span&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;SMTP/IMAP/POP3&lt;/span&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;SSH&lt;/span&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;gRPC&lt;/span&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;WebSocket&lt;/span&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;各种数据库协议（MySQL、PostgreSQL、Redis等）&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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;li&gt;&lt;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;HTTP状态码&lt;/span&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;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: 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;# 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;curl -v https://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;curl -X POST -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;-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;key&amp;quot;:&amp;quot;value&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;https://api.example.com/endpoint&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 只看响应头&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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://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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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;curl --http2 -I https://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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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（需要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 --http3 -I https://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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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;dig 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;dig +short 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;dig @8.8.8.8 example.com &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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;dig +trace example.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;# 追踪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;dig example.com MX &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查询MX记录&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;dig example.com TXT &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查询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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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缓存（systemd-resolved）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;resolvectl statistics&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;resolvectl query 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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# Redis测试&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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-cli -h 192.168.1.100 -p 6379 ping&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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 leaf=&quot;&quot; style=&quot;-webkit-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 -h 192.168.1.100 -u user -p -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;SELECT 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: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# PostgreSQL测试&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;psql -h 192.168.1.100 -U user -d database -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;SELECT 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;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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 22px; 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&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 20px; 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&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;pre data-tool=&quot;mdnice编辑器&quot; 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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;第一步：物理层检查&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;├── 网线是否插好？&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;├── 网口指示灯正常？&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;├── 网卡识别正常？&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;└── 链路速率/双工模式正确？&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;第二步：数据链路层检查&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;├── MAC地址正确？&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;├── ARP表正确？&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;├── VLAN配置正确？&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;└── 交换机端口正常？&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;第三步：网络层检查&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;├── 子网掩码正确？&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;├── 默认网关可达？&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;├── 路由表正确？&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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目标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; └── 如果都正常 → 进入第四步&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;第四步：传输层检查&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;├── 目标端口是否监听？&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;├── 防火墙是否放行？&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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连接能否建立？&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;└── 连接状态是否正常？&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;第五步：会话层检查&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;├── 证书是否有效？&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;└── 会话是否正常建立？&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;第六七步：应用层检查&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;├── 应用协议响应正常？&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;├── 返回数据正确？&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;└── 业务逻辑正常？&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 20px; 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&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;pre data-tool=&quot;mdnice编辑器&quot; 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;curl -v https://api.example.com/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;# 如果返回错误，检查错误类型：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# - 连接超时 → 可能是网络层或传输层问题&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# - 连接被拒绝 → 可能是服务没启动或防火墙问题&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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错误 → 会话层/表示层问题&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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 4xx/5xx → 应用层问题&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 第二步：如果连接超时，检查传输层&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 api.example.com 443&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 -tan | grep 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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 第三步：如果端口不通，检查网络层&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 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;traceroute 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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 第四步：如果ping不通，检查本地网络配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 addr 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;ip route 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;/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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 20px; 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&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;pre data-tool=&quot;mdnice编辑器&quot; 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;# network-diag.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;# 用法: ./network-diag.sh &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;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;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;${2:-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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;$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;&amp;nbsp;];&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;用法:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;目标主机&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;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;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;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-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;$(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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;# 解析目标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: #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;$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;&amp;nbsp;=~ ^[0-9]+\.[0-9]+\.[0-9]+\.[0-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: #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; TARGET_IP=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;=== DNS解析 ===&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; TARGET_IP=$(dig +short&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;&amp;nbsp;| 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 leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;$TARGET_IP&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;&amp;quot;DNS解析失败！&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;尝试其他DNS服务器：&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dig +short @8.8.8.8&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;$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;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;$TARGET_IP&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;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;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;ip -br link show | 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;^(eth|ens|enp|eno)&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 第三层：网络层&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;ip route get&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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_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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;=== Ping测试（网络层）===&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 -c 3 -W 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: #D19A66; line-height: 26px;&quot;&gt;$TARGET_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;&amp;nbsp;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;PING_RESULT=$?&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;$PING_RESULT&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;-ne 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 leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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; traceroute -m 15 -w 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: #D19A66; line-height: 26px;&quot;&gt;$TARGET_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;&amp;nbsp;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: #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;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;=== TCP端口测试（传输层）===&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 5 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;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;quot;echo &amp;gt; /dev/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;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_IP&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;[ $? -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 leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;$PORT&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; 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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;端口&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; 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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;# 第五层：会话层（如果是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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;$PORT&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;443&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 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;&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;=== TLS证书检查（会话层）===&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;| timeout 5 openssl s_client -connect&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;&amp;nbsp;-servername&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;&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; openssl x509 -noout -dates -subject 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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;# 第七层：应用层（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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;=== HTTP测试（应用层）===&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;$PORT&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;443&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 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; 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;&amp;quot;https&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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; 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;&amp;quot;http&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;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状态码: %{http_code}\n连接时间: %{time_connect}s\n总时间: %{time_total}s\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; --connect-timeout 5 --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;$PROTOCOL&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;://&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;&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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;/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%; 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; 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;span style=&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: 22px; 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&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 20px; 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&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;某天收到告警，一台核心服务器的监控数据断断续续的。服务本身没问题，但Prometheus采集数据时有时能成功有时失败。&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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;li&gt;&lt;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;从监控机ping这台服务器，发现有1-2%的丢包&lt;/span&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;检查网络层，路由正常，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;span leaf=&quot;&quot; style=&quot;-webkit-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连接能建立，但有重传&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%; 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;# 持续ping，观察丢包&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 -c 100 192.168.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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 结果&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 packets transmitted, 98 received, 2% packet loss&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查网卡统计&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;ethtool -S eth0 | 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|drop|crc)&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 发现CRC错误&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;rx_crc_errors: 1523&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;CRC错误说明是物理层的问题。&lt;/span&gt;&lt;/p&gt;&lt;ol class=&quot; list-paddingleft-2&quot; start=&quot;5&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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;li&gt;&lt;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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;间歇性丢包如果伴随着CRC错误，基本可以确定是物理层问题。要么是网线，要么是网卡，要么是交换机端口。&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 20px; 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;案例二：MTU问题导致的VPN连接异常&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;公司VPN改造后，部分用户反映连上VPN后访问某些内网系统很慢，有时候页面加载不出来，但ping是通的。&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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;li&gt;&lt;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;用户能ping通目标服务器，延迟正常&lt;/span&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;telnet 80端口能通&lt;/span&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;curl访问时，小页面正常，大页面超时&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%; 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;curl -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;%{time_total}\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;http://internal.example.com/api/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;0.123&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 大请求超时&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 -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;%{time_total}\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;http://internal.example.com/api/large-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 leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 测试MTU&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 -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: #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;&amp;nbsp;-s 1472 192.168.100.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;ping -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: #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;&amp;nbsp;-s 1473 192.168.100.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;/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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;发现MTU问题。VPN隧道需要额外的封装头，但客户端MTU没有相应调整。&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%; 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;li&gt;&lt;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;pre data-tool=&quot;mdnice编辑器&quot; 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;tcpdump -i tun0 -nn&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 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;icmp[0] == 3 and icmp[1] == 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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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;需要分片但DF被设置&amp;quot;的ICMP消息&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;方案一：调整VPN客户端MTU&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;# OpenVPN配置添加&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;mssfix 1400&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;方案二：在服务器端调整TCP MSS&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;# 通过iptables修改MSS&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;是MTU问题的典型特征。VPN、隧道、VXLAN等封装场景一定要注意MTU配置。&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 20px; 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;案例三：CLOSE_WAIT泄漏导致的服务不可用&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;某Java服务运行一段时间后，开始出现连接超时。重启后恢复正常，但过几天又会出现。&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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;li&gt;&lt;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;pre data-tool=&quot;mdnice编辑器&quot; 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;ss -tan | grep :8080 | 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&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 结果&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; 23 ESTABLISHED&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-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 LISTEN&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; 15234 CLOSE_WAIT &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 大量CLOSE_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;/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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;CLOSE_WAIT数量异常，这是典型的连接泄漏。&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%; 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;li&gt;&lt;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;找出CLOSE_WAIT连接的对端&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%; 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;ss -tanp state close-wait | grep :8080 | 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;| cut -d: -f1 | sort | uniq -c | sort -rn | 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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 发现都是连接到某个上游服务的&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-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;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%; 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;li&gt;&lt;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;检查代码，发现HTTP客户端没有正确关闭响应&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%; 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;HttpResponse response = httpClient.execute(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;String body = EntityUtils.toString(response.getEntity());&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;// 没有关闭response！&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;// 修复后&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;&amp;nbsp;(CloseableHttpResponse response = httpClient.execute(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;&amp;nbsp; &amp;nbsp; String body = EntityUtils.toString(response.getEntity());&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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响应被正确关闭。&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;临时缓解：增加文件描述符限制，设置TCP keepalive&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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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 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 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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;300 &amp;gt; /proc/sys/net/ipv4/tcp_keepalive_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: #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;30 &amp;gt; /proc/sys/net/ipv4/tcp_keepalive_intvl&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;3 &amp;gt; /proc/sys/net/ipv4/tcp_keepalive_probes&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;CLOSE_WAIT过多一定是应用程序的bug。对端已经关闭了连接，本地程序没有正确处理。需要从代码层面修复。&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 20px; 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;案例四：TLS证书链不完整&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;新上线的API服务，浏览器访问正常，但某些客户端调用报SSL错误。&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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;li&gt;&lt;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;用curl测试&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%; 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;curl https://api.example.com/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;# 报错：SSL certificate problem: unable to get local issuer certificate&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-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%; 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;li&gt;&lt;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;pre data-tool=&quot;mdnice编辑器&quot; 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;openssl s_client -connect api.example.com:443 -servername 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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 输出中看到&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;depth=0 CN = 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;verify error:num=21:unable to verify the first certificate&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;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%; 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;li&gt;&lt;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;pre data-tool=&quot;mdnice编辑器&quot; 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;openssl s_client -connect api.example.com:443 -servername api.example.com 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; openssl x509 -noout -issuer&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# issuer=C = US, O = Let&amp;#39;s Encrypt, CN = R3&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 需要添加中间证书 R3&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;pre data-tool=&quot;mdnice编辑器&quot; 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;wget https://letsencrypt.org/certs/lets-encrypt-r3.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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 合并证书&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 domain.crt lets-encrypt-r3.pem &amp;gt; fullchain.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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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;ssl_certificate /path/to/fullchain.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;ssl_certificate_key /path/to/domain.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;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;浏览器之所以能正常访问，是因为浏览器会缓存中间证书。但其他客户端如果没有缓存，就会报错。配置SSL证书一定要配置完整的证书链。&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 20px; 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;案例五：DNS解析不一致导致的诡异问题&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;某服务调用下游API，偶尔报连接超时。但手动curl测试一直是正常的。&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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;li&gt;&lt;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;pre data-tool=&quot;mdnice编辑器&quot; 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;curl -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;time_total: %{time_total}\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;https://downstream-api.example.com/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;/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%; 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;li&gt;&lt;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;检查应用使用的DNS服务器&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;应用容器使用的是集群内部的CoreDNS，而手动测试用的是宿主机的DNS。&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;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 app-pod -- nslookup downstream-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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 在宿主机测试&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 downstream-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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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;/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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;原来下游服务换了IP，CoreDNS的缓存还是旧的。&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%; 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;li&gt;&lt;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;检查CoreDNS配置&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%; 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;kubectl get configmap coredns -n kube-system -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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 发现cache TTL设置过长&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;方案一：清除CoreDNS缓存（重启CoreDNS 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%; 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;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;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;方案二：调整缓存TTL&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: #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 leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 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;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;coredns&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 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;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;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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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 leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 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;Corefile:&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;|&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; .: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; cache 30 &amp;nbsp;# 降低缓存时间&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; forward . /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;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 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; 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; text-indent: 0em; text-wrap: 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%; 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;DNS缓存是很多&amp;quot;灵异事件&amp;quot;的罪魁祸首。排查网络问题时，一定要确认DNS解析结果是否正确，特别是在使用多级DNS（宿主机、容器、Service等）的环境中。&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 20px; 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;案例六：Kubernetes Service网络问题&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;微服务A调用微服务B，偶发性超时。两个服务都在同一个Kubernetes集群中。&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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;li&gt;&lt;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;检查Service和Pod状态&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%; 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;kubectl get svc service-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 get endpoints service-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 get pods -l app=service-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;/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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;Service和Pod都正常。&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%; 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;li&gt;&lt;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;在Pod内测试&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%; 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;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 service&lt;/span&gt;&lt;span style=&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;-pod -- curl service-b: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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 有时成功，有时超时&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-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%; 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;li&gt;&lt;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;检查kube-proxy和iptables规则&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%; 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;# 查看Service对应的iptables规则&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 KUBE-SERVICES -n | grep service-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: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看具体规则&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 KUBE-SVC-XXXXXX -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;/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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;发现Service后端有3个Pod，但其中一个Pod的状态有问题。&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%; 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;li&gt;&lt;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;检查问题Pod&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%; 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;kubectl describe pod service-b-pod-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;# 发现Pod的readinessProbe一直失败，但Pod状态显示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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 原因是livenessProbe配置不当，没有正确剔除不健康的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;ol class=&quot; list-paddingleft-2&quot; start=&quot;5&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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;li&gt;&lt;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;pre data-tool=&quot;mdnice编辑器&quot; 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;# 在问题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 service-b-pod-xxx -- tcpdump -i eth0 port 8080 -nn&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 发现请求到达但服务没有响应&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;pre data-tool=&quot;mdnice编辑器&quot; 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: #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;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;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;service-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;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;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;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;/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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;Kubernetes环境的网络问题排查要考虑Service层的负载均衡。健康检查配置不当会导致请求被发送到不健康的Pod。&lt;/span&gt;&lt;/p&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 22px; 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;2025年网络排查新工具&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;除了传统的tcpdump、netstat这些工具，2025年有一些新工具和技术也值得掌握。&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 20px; 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;eBPF工具&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;eBPF（extended Berkeley Packet Filter）是近年来Linux内核最重要的创新之一。它能让我们在不修改内核代码的情况下，动态地跟踪和分析系统行为。&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;bcc工具集：&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;# 安装bcc工具&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 install bpfcc-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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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;tcpconnect-bpfcc&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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;tcptracer-bpfcc&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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;tcpretrans-bpfcc&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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;tcpstates-bpfcc&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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;gethostlatency-bpfcc&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;bpftrace：&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;# 跟踪所有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;bpftrace -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;#39;kprobe:tcp_v4_connect { printf(&amp;quot;connect: %s\n&amp;quot;, comm); }&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;# 统计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;bpftrace -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;#39;kprobe:tcp_retransmit_skb { @[comm] = count(); }&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;bpftrace -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;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-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;tracepoint:net:net_dev_queue { @start[args-&amp;gt;skbaddr] = nsecs; }&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;tracepoint:net:net_dev_xmit {&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; $latency = nsecs - @start[args-&amp;gt;skbaddr];&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; @us = hist($latency / 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; delete(@start[args-&amp;gt;skbaddr]);&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-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&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 20px; 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;Cilium网络诊断&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;在使用Cilium作为CNI的Kubernetes集群中，cilium命令行工具提供了强大的网络诊断功能：&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;cilium bpf ct list 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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看BPF策略&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;cilium bpf policy 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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 网络诊断&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;cilium connectivity&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看服务负载均衡&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;cilium service 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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 监控网络流量&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;cilium monitor&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# hubble流量观测&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;hubble observe --since 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;hubble observe --from-pod default/app --to-pod default/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;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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 20px; 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;Istio网络诊断&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;在Service Mesh环境中，Istio提供了丰富的诊断工具：&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;istioctl proxy-config all pod-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: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查路由配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;istioctl proxy-config routes pod-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: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 检查集群配置&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;istioctl proxy-config clusters pod-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: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 分析配置问题&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;istioctl analyze&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 查看代理日志&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-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 pod-name -c istio-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;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 使用Kiali观察服务网格&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-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/kiali -n istio-system 20001:20001&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 20px; 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;现代化的curl替代品&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;httpie：&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;pip install httpie&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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;http GET https://api.example.com/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;# POST 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;http POST https://api.example.com/users name=john age:=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;# 查看请求详情&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 -v https://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;/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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;xh：&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;# Rust写的高性能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;xh https://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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 只看响应头&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;xh -h https://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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 跟踪时间&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;xh --&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #E6C07B; line-height: 26px;&quot;&gt;print&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;=hH https://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;/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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 20px; 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;HTTP/3和QUIC诊断&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;2025年HTTP/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%; 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;# curl测试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;curl --http3 -I https://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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 使用quiche的示例客户端&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;quiche-client https://example.com --no-verify&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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支持情况&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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://example.com | grep alt-svc&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 使用ngtcp2测试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;ngtcp2-client -q example.com 443&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-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%; 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; 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;span style=&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: 22px; 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&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 20px; 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&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;网络问题排查标准流程&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;┌──────────────────────────────────────────────────────────┐&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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; &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;│ &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;│ &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;│ &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;│ &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;│ 2. 初步判断 &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;│ &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;│&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !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;│&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;├──────────────────────────────────────────────────────────┤&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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. 分层排查 &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;│ &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;│&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !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;│&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;├──────────────────────────────────────────────────────────┤&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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. 定位问题 &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;│ &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;│ &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;│ 5. 解决问题 &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;│ &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;│ &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;│ 6. 复盘总结 &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;│ &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;│ &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;│ &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;/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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 20px; 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&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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/out）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;网卡错误计数（CRC、帧错误）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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: #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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 网络层监控&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; line-height: 26px;&quot;&gt;ICMP延迟和丢包率&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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: #98C379; 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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 传输层监控&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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: #98C379; line-height: 26px;&quot;&gt;RTT&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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: #98C379; line-height: 26px;&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;buffer使用率&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 会话层监控&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; 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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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: #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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 应用层监控&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #98C379; 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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; 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;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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监控配置示例：&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;# 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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;NetworkInterfaceErrors&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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(node_network_receive_errs_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&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;网络接口错误&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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.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;的&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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.device }}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; 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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;TooManyTimeWait&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;node_sockstat_TCP_tw&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;TIME_WAIT过多&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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.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;有&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;nbsp;个TIME_WAIT连接&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;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;TooManyCloseWait&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;node_sockstat_TCP_close_wait&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 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;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: #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;CLOSE_WAIT过多&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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.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;有&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;nbsp;个CLOSE_WAIT连接，可能存在连接泄漏&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;# 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: #61AEEE; line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;HighTCPRetransmission&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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(node_netstat_Tcp_RetransSegs[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(node_netstat_Tcp_OutSegs[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.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: #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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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;TCP重传率过高&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; 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.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;TCP重传率为&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #D19A66; line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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%; 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; 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;span style=&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: 20px; 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&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;层级 &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;物理层 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ip link show &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; ethtool eth0 &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; ethtool -S eth0 &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;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 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 neigh show &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 查看ARP表&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; bridge fdb show &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 查看MAC地址表&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; tcpdump -i eth0 arp &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 抓取ARP包&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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 addr show &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &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; &amp;nbsp; &amp;nbsp; &amp;nbsp; ip route show &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; ping &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; traceroute / mtr &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; tcpdump -i eth0 icmp &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;抓取ICMP包&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;传输层 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ss -tanp &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;查看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; &amp;nbsp; 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; 连接统计&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nc -zv host port &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; tcpdump -i eth0 port 80 &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; &amp;nbsp; &amp;nbsp;openssl s_client &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;测试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; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; curl -v https:// &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;查看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;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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 &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;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; dig / nslookup &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;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; &amp;nbsp; &amp;nbsp; &amp;nbsp; tcpdump -A &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;/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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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: 20px; 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&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;系统级TCP优化：&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;# /etc/sysctl.conf 或 /etc/sysctl.d/99-network.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缓冲区&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 leaf=&quot;&quot; style=&quot;-webkit-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.netfilter.nf_conntrack_max = 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;net.netfilter.nf_conntrack_tcp_timeout_established = 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;net.netfilter.nf_conntrack_tcp_timeout_time_wait = 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;# 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;net.ipv4.ip_local_port_range = 1024 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_tw_buckets = 262144&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 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 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;net.ipv4.tcp_keepalive_time = 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;net.ipv4.tcp_keepalive_intvl = 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;net.ipv4.tcp_keepalive_probes = 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 style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: #5C6370; font-style: italic; line-height: 26px;&quot;&gt;# 队列优化&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;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;# 快速回收和重用&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_fin_timeout = 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;net.ipv4.tcp_slow_start_after_idle = 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;# 启用TCP BBR拥塞控制（2025年推荐）&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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.default_qdisc = fq&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_congestion_control = bbr&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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 leaf=&quot;&quot; style=&quot;-webkit-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&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-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%; 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; 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;span style=&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: 22px; 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&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;nbsp;OSI七层模型不是为了考试，而是一套系统化的排查方法论。网络问题千变万化，但只要你能准确定位问题在哪一层，解决方案自然就清楚了。&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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;li&gt;&lt;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;物理层：ethtool&lt;/span&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;数据链路层：ip neigh、bridge、tcpdump arp&lt;/span&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;网络层：ip、ping、traceroute、mtr&lt;/span&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;传输层：ss、netstat、tcpdump&lt;/span&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;会话层：openssl&lt;/span&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;应用层：curl、dig&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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%; 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;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; 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; text-indent: 0em; text-wrap: 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%; 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;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; 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; text-indent: 0em; text-wrap: 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%; 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;nbsp;eBPF、Cilium、Istio这些新技术已经成为2025年的标配，不能只停留在传统工具上。&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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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&amp;quot;, system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Helvetica Neue&amp;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: 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;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; 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-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.kubernetes.top/zb_users/upload/2026/01/202601211103141511995.png&quot; alt=&quot;image.png&quot; width=&quot;504&quot; height=&quot;171&quot; style=&quot;width: 504px; height: 171px;&quot;/&gt;&lt;/span&gt;&lt;/section&gt;</description><pubDate>Wed, 21 Jan 2026 10:59:21 +0800</pubDate></item><item><title>Nginx缓存配置实战：proxy_cache 让响应快如闪电</title><link>https://www.kubernetes.top/?id=449</link><description>&lt;section style=&quot;text-align: center; visibility: visible;&quot;&gt;&lt;img src=&quot;https://www.kubernetes.top/zb_users/upload/2026/01/202601211054003713809.png&quot; alt=&quot;a2b7dddaa75ff6fdeeaa22962f094833.png&quot; width=&quot;667&quot; height=&quot;358&quot; style=&quot;width: 667px; height: 358px;&quot;/&gt;&lt;/section&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%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: wrap; background-color: rgb(255, 255, 255); visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; data-pm-slice=&quot;0 0 []&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&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%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: wrap; background-color: rgb(255, 255, 255); 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; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; text-indent: 0em; text-wrap: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; 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;2024年初接手过一个内容平台项目，PHP渲染的页面，平均响应时间800ms，一到流量高峰后端服务就告警。加了两台服务器问题依旧，因为瓶颈在数据库查询和页面渲染上，横向扩展解决不了根本问题。&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: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; text-indent: 0em; text-wrap: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; 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层加上proxy_cache，同样的页面响应时间直接降到5ms以内，后端请求量下降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; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; text-indent: 0em; text-wrap: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; 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的proxy_cache是反向代理缓存，位于客户端和后端服务之间。当请求第一次到达时，Nginx转发给后端，拿到响应后存一份在本地磁盘/内存；后续相同请求直接从缓存返回，不再打扰后端。这个机制适合所有读多写少的场景：新闻资讯、商品详情、API数据等。&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%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: wrap; background-color: rgb(255, 255, 255); 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; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; text-indent: 0em; text-wrap: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; 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 proxy_cache的核心优势：&lt;/span&gt;&lt;/p&gt;&lt;ul 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: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: wrap; background-color: rgb(255, 255, 255); visibility: visible; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot; list-paddingleft-2&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(0, 0, 0); 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;/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(0, 0, 0); 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 class=&quot;&quot;&gt;URL&lt;/span&gt;、Header、Cookie等多维度控制缓存策略&lt;/span&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(0, 0, 0); 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;：支持条件请求（304 Not Modified），减少重复传输&lt;/span&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(0, 0, 0); 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;/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(0, 0, 0); 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;：支持后端验证（proxy_cache_revalidate），保证数据新鲜度&lt;/span&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(0, 0, 0); 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;/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: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; text-indent: 0em; text-wrap: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; 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;和Redis/Memcached缓存相比，proxy_cache的特点是：离用户更近（在Nginx层），延迟更低，但不支持分布式（每台Nginx独立缓存）。适合单机或配合&lt;span class=&quot;&quot;&gt;CDN&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%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: 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%; 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;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%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: 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;657&quot;&gt;&lt;thead&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 0% 0% / 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 0% 0% / 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 0% 0% / 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&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: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-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;长时间缓存 + ETag&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-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; 1ms&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;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: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;短时间缓存 + vary&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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-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: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-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;长时间缓存 + sendfile&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;/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;实时性和性能平衡&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: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-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%; 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;用户Feed&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-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&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%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: 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%; 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;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%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: 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;657&quot;&gt;&lt;thead&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 0% 0% / 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 0% 0% / 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 0% 0% / 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&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: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 / 1.27.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%; 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 / 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;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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&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: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-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;SSD强烈推荐&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-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;建议8GB以上&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;热点缓存存放在tmpfs&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: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-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&gt;&lt;br/&gt;&lt;/p&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%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: 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%; 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%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: 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%; 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%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: 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%; 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%; 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 /var/cache/nginx/proxy_cache&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #5C6370;font-style: italic;line-height: 26px;&quot;&gt;# 如果要用内存缓存（推荐用于热点数据）&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 /var/cache/nginx/memory_cache&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 -t tmpfs -o size=2G tmpfs /var/cache/nginx/memory_cache&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #5C6370;font-style: italic;line-height: 26px;&quot;&gt;# 设置持久化挂载（可选）&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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;tmpfs /var/cache/nginx/memory_cache tmpfs size=2G,mode=0755 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;&amp;nbsp;&amp;gt;&amp;gt; /etc/fstab&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #5C6370;font-style: italic;line-height: 26px;&quot;&gt;# 设置权限&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 nginx:nginx /var/cache/nginx&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 755 /var/cache/nginx&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&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%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: 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%; 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;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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;=/dev/zero of=/var/cache/nginx/test.bin bs=1M count=1024 conv=fdatasync&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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建议：&amp;gt; 200MB/s&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #5C6370;font-style: italic;line-height: 26px;&quot;&gt;# HDD建议：&amp;gt; 50MB/s&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #5C6370;font-style: italic;line-height: 26px;&quot;&gt;# 如果低于这个值，考虑使用内存缓存或更换磁盘&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #5C6370;font-style: italic;line-height: 26px;&quot;&gt;# 清理测试文件&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 -f /var/cache/nginx/test.bin&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&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%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: 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%; 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;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #5C6370;font-style: italic;line-height: 26px;&quot;&gt;#&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #5C6370;font-style: italic;line-height: 26px;&quot;&gt;# 假设：&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #5C6370;font-style: italic;line-height: 26px;&quot;&gt;# - 平均响应大小：50KB&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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万个URL&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #5C6370;font-style: italic;line-height: 26px;&quot;&gt;# - 所需空间：50KB × 100,000 = 5GB&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #5C6370;font-style: italic;line-height: 26px;&quot;&gt;#&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #5C6370;font-style: italic;line-height: 26px;&quot;&gt;# 建议配置：&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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_size：略大于预计使用量，比如8GB&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #5C6370;font-style: italic;line-height: 26px;&quot;&gt;# - inactive：根据内容更新频率，通常1-7天&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #5C6370;font-style: italic;line-height: 26px;&quot;&gt;# - keys_zone：每1MB大约存储8000个key&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #5C6370;font-style: italic;line-height: 26px;&quot;&gt;# 查看磁盘空间&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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/cache/nginx&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&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%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: 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%; 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%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: 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%; 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; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; text-indent: 0em; text-wrap: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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(30, 107, 184);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: 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&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%; 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # path: 缓存文件存储路径&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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表示一级目录1个字符，二级目录2个字符&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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: 缓存索引存放在共享内存，名称:大小&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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: 缓存文件最大占用磁盘空间&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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表示直接写入缓存目录，减少IO&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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 /var/cache/nginx/proxy_cache&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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=my_cache:100m&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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 /var/cache/nginx/memory_cache&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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=hot_cache:50m&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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=2g&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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=1h&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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 /var/cache/nginx/api_cache&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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=api_cache:50m&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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=5g&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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=10m&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&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: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; text-indent: 0em; text-wrap: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&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: 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;levels参数详解：&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%; 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;# levels=1:2 表示：&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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: http://example.com/path/to/resource&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #5C6370;font-style: italic;line-height: 26px;&quot;&gt;# MD5: d41d8cd98f00b204e9800998ecf8427e&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #5C6370;font-style: italic;line-height: 26px;&quot;&gt;# 存储路径: /var/cache/nginx/proxy_cache/e/27/d41d8cd98f00b204e9800998ecf8427e&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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; &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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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; &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;| |__ 二级目录（2个字符）&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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; &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;|____ 一级目录（1个字符）&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #5C6370;font-style: italic;line-height: 26px;&quot;&gt;# 为什么要分级？&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #5C6370;font-style: italic;line-height: 26px;&quot;&gt;# 避免单目录下文件过多导致文件系统性能下降&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #5C6370;font-style: italic;line-height: 26px;&quot;&gt;# ext4单目录超过10万文件性能会明显下降&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&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%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: 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%; 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;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; 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.example.com.conf&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;# 默认是 $scheme$proxy_host$request_uri&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;# 可以根据需要自定义，比如忽略某些参数&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_key &amp;quot;$scheme$host$request_uri&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;# 根据响应码设置不同缓存时间&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_valid 200 301 302 1h;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_valid 404 1m;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_valid any 10s; &amp;nbsp;# 其他状态码&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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 example.com;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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 my_cache;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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_lock on;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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_lock_timeout 5s;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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_lock_age 5s;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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: 后端错误时返回旧缓存&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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 leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # updating: 正在更新缓存时返回旧缓存&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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_use_stale error timeout updating http_500 http_502 http_503 http_504;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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_background_update on;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 请求N次后才缓存（过滤一次性请求）&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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_min_uses 2;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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-Cache-Status $upstream_cache_status;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 这个location使用默认缓存配置&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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 api_cache;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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 1m; &amp;nbsp;# API缓存1分钟&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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_authorization; &amp;nbsp;# 有认证头不走缓存&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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_authorization; &amp;nbsp; &amp;nbsp; &amp;nbsp;# 有认证头不存缓存&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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_backend;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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/user/ {&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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_backend;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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|woff|ttf)$ {&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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 my_cache;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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 30d;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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_backend;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&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%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: 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%; 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 缓存状态说明&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: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; text-indent: 0em; text-wrap: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-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(30, 107, 184);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: 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;$upstream_cache_status&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&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%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: 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;657&quot;&gt;&lt;thead&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 0% 0% / 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 0% 0% / 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&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: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;MISS&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-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;HIT&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-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: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;EXPIRED&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-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;STALE&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-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: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;UPDATING&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-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;REVALIDATED&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-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: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;BYPASS&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_bypass命中）&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%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: 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%; 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%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: 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%; 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%; 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #5C6370;font-style: italic;line-height: 26px;&quot;&gt;# 查看缓存相关配置&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 | 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;proxy_cache|cache_path&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&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%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: 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%; 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%; 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #5C6370;font-style: italic;line-height: 26px;&quot;&gt;# 查看缓存目录是否正常创建&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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/cache/nginx/&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&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%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: 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%; 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%; 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;# 第一次请求（应该是MISS）&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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://example.com/api/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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-Cache-Status: MISS&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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_uses=2，还是MISS）&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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://example.com/api/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #5C6370;font-style: italic;line-height: 26px;&quot;&gt;# 第三次请求（应该是HIT）&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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://example.com/api/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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-Cache-Status: HIT&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #5C6370;font-style: italic;line-height: 26px;&quot;&gt;# 查看缓存文件&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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/cache/nginx/proxy_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 | head -10&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #5C6370;font-style: italic;line-height: 26px;&quot;&gt;# 查看缓存文件内容（调试）&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;head -50 /var/cache/nginx/proxy_cache/e/27/xxx&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&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%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: 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%; 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 性能测试对比&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%; 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;ab -n 1000 -c 50 -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;Cache-Control: 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;&amp;nbsp;http://example.com/api/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #5C6370;font-style: italic;line-height: 26px;&quot;&gt;# 走缓存的性能&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;ab -n 1000 -c 50 http://example.com/api/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #5C6370;font-style: italic;line-height: 26px;&quot;&gt;# 对比两次测试的：&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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 per second（每秒请求数）&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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 per request（平均响应时间）&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #5C6370;font-style: italic;line-height: 26px;&quot;&gt;#&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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应该是未命中的10-100倍&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&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%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: 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%; 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%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: 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%; 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;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 /run/nginx.pid;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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 65535;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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 cache_log &amp;#39;$remote_addr - [$time_local] &amp;quot;$request&amp;quot; &amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !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;#39;$status $body_bytes_sent &amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !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;#39;&amp;quot;$http_referer&amp;quot; &amp;quot;$http_user_agent&amp;quot; &amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !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;#39;cache:$upstream_cache_status &amp;#39;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !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;#39;rt:$request_time upt:$upstream_response_time&amp;#39;;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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 cache_log;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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 5;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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 application/json application/javascript application/xml;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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 /var/cache/nginx/main_cache&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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=main_cache:100m&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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 /var/cache/nginx/hot_cache&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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=hot_cache:50m&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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=2g&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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=1h&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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 /var/cache/nginx/api_cache&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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=api_cache:50m&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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=5g&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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=10m&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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 /var/cache/nginx/static_cache&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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=static_cache:100m&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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=50g&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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=30d&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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_lock on;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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_lock_timeout 5s;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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_use_stale error timeout updating http_500 http_502 http_503 http_504;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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_background_update on;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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_revalidate on;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; upstream backend {&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; least_conn;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; server 10.0.0.11:8080 weight=5;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; server 10.0.0.12:8080 weight=5;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; keepalive 100;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; upstream api_backend {&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; least_conn;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; server 10.0.0.21:8080;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; server 10.0.0.22:8080;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; keepalive 50;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; upstream static_backend {&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; server 10.0.0.31:80;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; server 10.0.0.32:80;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; keepalive 100;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&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%; 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/www.example.com.conf&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;# 定义不缓存的条件&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 $request_uri $skip_cache {&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ~*/admin/ 1; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# 后台不缓存&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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/user/ 1; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 用户接口不缓存&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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/cart/ 1; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 购物车不缓存&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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/order/ 1; &amp;nbsp; &amp;nbsp; &amp;nbsp;# 订单不缓存&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_cookie $skip_cache_cookie {&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ~*session_id 1; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 有session不缓存&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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_token 1; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 有token不缓存&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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/example.com.crt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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/example.com.key;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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-Cache-Status $upstream_cache_status always;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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-Cache-Key $scheme$host$request_uri always;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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 main_cache;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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 301 302 10m;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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_min_uses 1;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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 $no_cache 0;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($skip_cache) {&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; set $no_cache 1;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($skip_cache_cookie) {&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; set $no_cache 1;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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 $no_cache;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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 $no_cache;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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 10s;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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 ~ ^/(hot|trending|popular) {&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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 hot_cache;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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_min_uses 1;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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/public/ {&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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 api_cache;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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 2m;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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 30s;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 尊重后端的Cache-Control头&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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 0;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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_backend;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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_backend;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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 Authorization $http_authorization;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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|svg|webp)$ {&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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 static_cache;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;$host$request_uri&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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 30d;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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_min_uses 1;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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_backend;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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 ~* \.(css|js|woff2|woff|ttf|eot)$ {&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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 static_cache;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;$host$request_uri&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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 7d;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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_backend;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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 ~* \.(mp4|avi|mkv|zip|tar\.gz)$ {&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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 static_cache;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;$host$request_uri&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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 30d;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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_min_uses 3; &amp;nbsp;# 访问3次才缓存&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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_rate 2m;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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_rate_after 10m; &amp;nbsp;# 前10MB不限速&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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_backend;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 缓存清理接口（需要配合ngx_cache_purge模块）&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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.0.0/8;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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 main_cache &amp;quot;$scheme$host$1&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&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%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: 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%; 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%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: 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%; 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; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; text-indent: 0em; text-wrap: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;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%; 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/news.example.com.conf&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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 news.example.com;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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 hot_cache;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;$host$request_uri&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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 1m; &amp;nbsp;# 只缓存1分钟&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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 updating;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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_background_update on;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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 ~ ^/category/ {&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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 main_cache;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;$host$request_uri$arg_page&amp;quot;; &amp;nbsp;# 带分页参数&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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 ~ ^/article/\d+ {&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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 main_cache;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;$host$request_uri&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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 1h; &amp;nbsp;# 缓存1小时&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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_revalidate on;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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 /uploads/ {&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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 static_cache;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;$host$request_uri&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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 365d;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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 max;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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_backend;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&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%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: 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%; 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; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; text-indent: 0em; text-wrap: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;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%; 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/shop.example.com.conf&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;# 定义商品ID提取&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 $request_uri $product_id {&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ~^/product/(\d+) $1;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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 shop.example.com;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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 ~ ^/product/\d+ {&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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 main_cache;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;$host$request_uri&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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 updating;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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_background_update on;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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-Product-ID $product_id;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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/product/\d+/realtime {&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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 api_cache;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;$host$request_uri&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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 10s; &amp;nbsp;# 只缓存10秒&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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_backend;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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/product/\d+/info {&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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 api_cache;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;$host$request_uri&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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 10m;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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_backend;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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 ~ ^/category/\d+ {&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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 main_cache;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;$host$request_uri$arg_sort$arg_page$arg_pageSize&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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 10m;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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 /search {&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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 api_cache;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;$host$uri$arg_q$arg_category$arg_price_min$arg_price_max$arg_page&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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_min_uses 2; &amp;nbsp;# 至少搜2次才缓存&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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_backend;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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 ~ ^/(cart|order|checkout) {&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&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%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: 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%; 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;案例三：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; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; text-indent: 0em; text-wrap: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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%; 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/api-gateway.conf&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;# 根据请求方法决定是否缓存&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 $request_method $cache_method {&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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 1;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; HEAD 1;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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-Control头决定缓存时间&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 $upstream_http_cache_control $custom_cache_time {&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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 60s;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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-age=(\d+) $1s;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ~*no-cache 0;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ~*no-store 0;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ~*private 0;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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和HEAD请求&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; set $no_cache 0;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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 ($cache_method = 0) {&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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 $no_cache 1;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 带Authorization头的不缓存&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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 ($http_authorization != &amp;quot;&amp;quot;) {&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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 $no_cache 1;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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/public/ {&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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 api_cache;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;$host$request_uri&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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 $no_cache;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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 $no_cache;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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-TTL $custom_cache_time;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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_backend;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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/config/ {&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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 api_cache;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;$host$request_uri&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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 1h;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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_backend;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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/user/ {&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 按用户ID缓存（从Header获取）&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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 api_cache;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;$host$request_uri$http_x_user_id&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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 1m;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 没有用户ID不缓存&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ($http_x_user_id = &amp;quot;&amp;quot;) {&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; set $no_cache 1;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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 $no_cache;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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 $no_cache;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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_backend;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 写接口（POST/PUT/DELETE）&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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请求不走上面的location，这里统一处理&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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_backend;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&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%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: 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%; 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%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: 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%; 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%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: 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%; 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 缓存Key设计原则&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%; 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;# 原则1：Key要包含所有影响响应内容的因素&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;# 坑：分页参数没加进去，所有页返回相同内容&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;# 错误&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_key &amp;quot;$host$uri&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;# 正确&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_key &amp;quot;$host$uri$arg_page$arg_pageSize&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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：Key不要包含无关因素&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;# 坑：包含了时间戳参数，永远无法命中&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;# 错误（如果前端加了_t防缓存参数）&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_key &amp;quot;$host$request_uri&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;# 正确（过滤掉无关参数）&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_key &amp;quot;$host$uri$arg_id$arg_type&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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：Key长度要适中&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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会做MD5，所以实际存储的是32字符的hash&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&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%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: 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%; 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;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; 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;# 策略1：TTL过期自动更新&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_valid 200 10m; &amp;nbsp;# 10分钟后过期&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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; &amp;nbsp;# 过期时后台更新&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 updating; &amp;nbsp; &amp;nbsp;# 更新期间返回旧缓存&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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：主动清理（需要ngx_cache_purge模块）&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 ~ /purge(/.*) {&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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_purge main_cache &amp;quot;$scheme$host$1&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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://example.com/purge/api/product/123&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_revalidate on; &amp;nbsp;# 尊重ETag/Last-Modified&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&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%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: 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%; 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;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 /var/cache/nginx/memory_cache&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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=level1:50m&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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=2g&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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=10m;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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（温数据）&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 /var/cache/nginx/ssd_cache&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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=level2:100m&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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=50g&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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=1d;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;# 三级缓存：HDD（冷数据）&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 /var/cache/nginx/hdd_cache&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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=level3:200m&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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=500g&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;# 使用时根据内容热度选择不同缓存&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;# 热点内容：level1&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;# 普通内容：level2&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;# 长尾内容：level3&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&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%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: 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%; 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 与CDN配合使用&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%; 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;# Nginx作为源站，配合CDN使用时的配置&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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 origin.example.com;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; # 设置合适的Cache-Control头，让CDN缓存&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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|png|gif|css|js)$ {&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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 static_cache;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # CDN缓存7天，浏览器缓存1天&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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=86400, s-maxage=604800&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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/public/ {&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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 api_cache;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # CDN缓存5分钟&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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=300&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # 带Vary头，让CDN按这些维度缓存&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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 Vary &amp;quot;Accept-Encoding, Accept-Language&amp;quot;;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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_backend;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&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%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: 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%; 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;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%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: 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%; 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&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%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: 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;657&quot;&gt;&lt;thead&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 0% 0% / 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 0% 0% / 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 0% 0% / 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&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: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;缓存永远MISS&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;后端返回了Set-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;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_ignore_headers Set-Cookie&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;缓存永远MISS&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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-Control: private&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_ignore_headers Cache-Control&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: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-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;Key设计不当，不同内容用了相同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: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_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: 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;用户接口禁用缓存或按用户ID缓存&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: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-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;max_size设置过小或inactive过长&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-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;min_uses设置过大&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;热点内容设置min_uses=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-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: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-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;缩短TTL或实现主动刷新&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;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%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: 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%; 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;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; 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;# 1. 防止敏感信息被缓存&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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的请求不缓存&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_bypass $http_authorization;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_no_cache $http_authorization;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_cookie $has_sensitive_cookie {&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; ~*session 1;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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 1;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_bypass $has_sensitive_cookie;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_no_cache $has_sensitive_cookie;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 ~ /purge/ {&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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 127.0.0.1;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;}&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;# 如果后端在响应中包含用户信息，该接口不应该缓存&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 http_500 http_502 http_503 http_504;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&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%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: 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%; 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;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; 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;# 1. 使用sendfile提高静态文件传输效率&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;sendfile on;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_nopush on;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_nodelay on;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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. 开启aio（异步IO）&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;aio threads;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;directio 4m; &amp;nbsp;# 大于4MB的文件使用directio&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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=10000 inactive=60s;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_valid 30s;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_min_uses 2;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_errors on;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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过小会导致无法存储足够的Key&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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大约存储8000个Key&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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万URL需要缓存，至少需要125MB&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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. 使用tmpfs作为热点缓存存储&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 -t tmpfs -o size=4G tmpfs /var/cache/nginx/hot_cache&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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; &amp;nbsp;# 等待锁的超时&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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; &amp;nbsp; &amp;nbsp; &amp;nbsp;# 锁的最大持有时间&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&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%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: 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%; 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%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: 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%; 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%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: 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%; 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%; 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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://example.com/api/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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-Cache-Status&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;add_header X-Cache-Bypass&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #D19A66;line-height: 26px;&quot;&gt;$no_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;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;add_header X-Cache-Key&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #D19A66;line-height: 26px;&quot;&gt;$scheme&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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: #D19A66;line-height: 26px;&quot;&gt;$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;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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://backend:8080/api/&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #5C6370;font-style: italic;line-height: 26px;&quot;&gt;# 看是否有 Cache-Control: no-store/no-cache/private&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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-Cookie&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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/cache/nginx -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;*&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 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;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 -mmin -5 | wc -l&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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，说明没有新文件生成&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;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;&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/error.log&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&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%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: 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%; 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;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; 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;# 查看缓存文件内容（包含响应头和body）&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;head -100 /var/cache/nginx/main_cache/a/bc/xxxxx&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #5C6370;font-style: italic;line-height: 26px;&quot;&gt;# 文件结构：&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #5C6370;font-style: italic;line-height: 26px;&quot;&gt;# - 空行&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #5C6370;font-style: italic;line-height: 26px;&quot;&gt;# - 响应Body&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #5C6370;font-style: italic;line-height: 26px;&quot;&gt;# 解析缓存文件的脚本&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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/parse_cache.sh&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_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: #D19A66;line-height: 26px;&quot;&gt;$1&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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;=== Cache 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: #D19A66;line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_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;===&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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;=== Headers ===&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 -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;#39;/^KEY:/,/^$/p&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;$CACHE_FILE&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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;=== Response Headers ===&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 -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;#39;/^HTTP/,/^$/p&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;$CACHE_FILE&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&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%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: 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%; 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%; 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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_stats.sh&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #5C6370;font-style: italic;line-height: 26px;&quot;&gt;# 从访问日志统计缓存命中率&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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/nginx/access.log&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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 Statistics ===&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #5C6370;font-style: italic;line-height: 26px;&quot;&gt;# 统计各状态数量&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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;Status Counts:&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 -oP&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 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;cache:\K\w+&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;$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;| sort | uniq -c | sort -rn&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #5C6370;font-style: italic;line-height: 26px;&quot;&gt;# 计算命中率&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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=$(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;#39;cache:&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;$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;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;HIT=$(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;#39;cache:HIT&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;$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;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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;scale=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: #D19A66;line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;$HIT&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp;* 100 /&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #D19A66;line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;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;| bc)&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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;Total Requests:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #D19A66;line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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;Cache Hits:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #D19A66;line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;$HIT&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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;Hit Rate:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #D19A66;line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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统计MISS最多的&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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;Top 10 Cache MISS URLs:&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;#39;cache:MISS&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;$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;| 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 $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;| sort | uniq -c | sort -rn | head -10&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&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%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: 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%; 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%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: 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%; 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 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%; 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;# 使用nginx-prometheus-exporter&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;# 添加统计变量&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_format metrics &amp;#39;$upstream_cache_status $request_time $upstream_response_time&amp;#39;;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;# 使用mtail或其他工具解析日志生成metrics&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;# 关键指标：&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_cache_hit_total&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_cache_miss_total&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_cache_expired_total&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_cache_stale_total&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&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%; 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;# prometheus告警规则示例&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #61AEEE;line-height: 26px;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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_cache&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-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;NginxCacheHitRateLow&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;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(rate(nginx_cache_hit_total[5m])) /&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;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(rate(nginx_cache_requests_total[5m]))&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ) &amp;lt; 0.7&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&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;10m&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;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 cache hit rate is below 70%&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&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%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: 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%; 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;pre data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 10px; margin-bottom: 10px; padding: 0px; outline: 0px; max-width: 100%; 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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_disk_monitor.sh&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_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/cache/nginx&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;THRESHOLD=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;# 使用率告警阈值&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #5C6370;font-style: italic;line-height: 26px;&quot;&gt;# 检查磁盘使用率&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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=$(df&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #D19A66;line-height: 26px;&quot;&gt;$CACHE_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;&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;NR==2 {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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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;$USAGE&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-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&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #D19A66;line-height: 26px;&quot;&gt;$THRESHOLD&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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;[WARN] Cache disk 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}&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #5C6370;font-style: italic;line-height: 26px;&quot;&gt;# 发送告警&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #5C6370;font-style: italic;line-height: 26px;&quot;&gt;# 统计缓存文件数量&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_COUNT=$(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;$CACHE_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;&amp;nbsp;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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)&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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;Cache files:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #D19A66;line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #5C6370;font-style: italic;line-height: 26px;&quot;&gt;# 统计各目录大小&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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 size by directory:&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #D19A66;line-height: 26px;&quot;&gt;$CACHE_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;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&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%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: 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%; 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 实时监控脚本&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%; 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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_realtime.sh&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #5C6370;font-style: italic;line-height: 26px;&quot;&gt;# 实时显示缓存状态&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; clear&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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 Cache Realtime Monitor ===&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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;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;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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;Last 1 minute cache status:&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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 -1000 /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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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 -oP&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 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;cache:\K\w+&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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sort | uniq -c&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #5C6370;font-style: italic;line-height: 26px;&quot;&gt;# 缓存目录状态&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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 directory status:&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; du -sh /var/cache/nginx/* 2&amp;gt;/dev/null&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #5C6370;font-style: italic;line-height: 26px;&quot;&gt;# 当前连接数&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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;Current connections:&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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 http://127.0.0.1:8080/nginx_status 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;Status page not available&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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 5&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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;&gt;&lt;br/&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%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: 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%; 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%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: 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%; 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%; 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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_warmup.sh&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #5C6370;font-style: italic;line-height: 26px;&quot;&gt;# 缓存预热脚本&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_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;/opt/scripts/warmup_urls.txt&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;CONCURRENT=10&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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://localhost&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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;Starting cache warmup...&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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: #D19A66;line-height: 26px;&quot;&gt;$URL_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;| 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: #D19A66;line-height: 26px;&quot;&gt;$CONCURRENT&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-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 {} 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;%{url_effective} -&amp;gt; %{http_code}\n&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;$NGINX_HOST&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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 warmup completed.&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #5C6370;font-style: italic;line-height: 26px;&quot;&gt;# 统计预热结果&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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;Warmup statistics:&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #98C379;line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;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 leaf=&quot;&quot; style=&quot;-webkit-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/test&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 | 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;X-Cache-Status&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&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%; 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;# /opt/scripts/warmup_urls.txt&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;/&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;/hot&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;/category/1&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;/category/2&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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/public/config&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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/public/banner&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&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%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: 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%; 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%; 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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_clean.sh&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #5C6370;font-style: italic;line-height: 26px;&quot;&gt;# 缓存清理脚本&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_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/cache/nginx&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; all)&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #5C6370;font-style: italic;line-height: 26px;&quot;&gt;# 清理所有缓存&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 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: #D19A66;line-height: 26px;&quot;&gt;$CACHE_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;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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;All cache cleared.&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; old)&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &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: #D19A66;line-height: 26px;&quot;&gt;$CACHE_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;&amp;nbsp;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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 -mtime +7 -delete&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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;Old cache (&amp;gt;7 days) cleared.&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; size)&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #5C6370;font-style: italic;line-height: 26px;&quot;&gt;# 清理到指定大小（保留最新的）&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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=&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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:-10G}&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #5C6370;font-style: italic;line-height: 26px;&quot;&gt;# 使用du和find组合清理&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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;[ $(du -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: #D19A66;line-height: 26px;&quot;&gt;$CACHE_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;&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;) -gt $(numfmt --from=iec&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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 leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &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: #D19A66;line-height: 26px;&quot;&gt;$CACHE_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;&amp;nbsp;-&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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;printf&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 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;%T+ %p\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;| sort | head -1000 | 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;&amp;nbsp;| xargs rm -f&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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;Cache cleaned to under&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #D19A66;line-height: 26px;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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;{all|old|size [MAX_SIZE]}&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;&gt;&lt;br/&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%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: 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%; 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 缓存迁移&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%; 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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_migrate.sh&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #5C6370;font-style: italic;line-height: 26px;&quot;&gt;# 缓存迁移脚本（迁移到新服务器）&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;SOURCE_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/cache/nginx&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_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;new-nginx-server&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_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/cache/nginx&amp;quot;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #5C6370;font-style: italic;line-height: 26px;&quot;&gt;# 使用rsync同步缓存文件&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;rsync -avz --progress&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #D19A66;line-height: 26px;&quot;&gt;$SOURCE_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;/&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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_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;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;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_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;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #5C6370;font-style: italic;line-height: 26px;&quot;&gt;# 注意事项：&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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;&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 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. 如果使用了proxy_cache_key包含$host，确保两台服务器域名一致&lt;/span&gt;&lt;span leaf=&quot;&quot;&gt;&lt;br/&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%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: 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%; 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%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: 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%; 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;p data-tool=&quot;mdnice编辑器&quot; style=&quot;-webkit-tap-highlight-color: 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: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; letter-spacing: 0em; text-indent: 0em; text-wrap: wrap; background-color: rgb(255, 255, 255); line-height: 1.8em; box-sizing: border-box !important; overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_cache的核心配置要素：&lt;/span&gt;&lt;/p&gt;&lt;ol style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin-top: 8px; margin-bottom: 8px; padding: 0px 0px 0px 2.2em; outline: 0px; max-width: 100%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot;extra-list-padding-level1 list-paddingleft-2&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: 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;（proxy_cache_path）&lt;/span&gt;&lt;/p&gt;&lt;/section&gt;&lt;/li&gt;&lt;ul style=&quot;list-style-type: disc;&quot; class=&quot; list-paddingleft-2&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;color: rgb(30, 107, 184);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;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: 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;levels&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); 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(30, 107, 184);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;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: 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;：共享内存区域，存储缓存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(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;color: rgb(30, 107, 184);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;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: 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_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;：磁盘缓存最大容量&lt;/span&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;color: rgb(30, 107, 184);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;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: 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;inactive&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;li&gt;&lt;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: 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;缓存Key设计&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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_key）&lt;/span&gt;&lt;/p&gt;&lt;/section&gt;&lt;/li&gt;&lt;ul style=&quot;list-style-type: disc;&quot; class=&quot; list-paddingleft-2&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;合理控制Key长度&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%; 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;（proxy_cache_valid）&lt;/span&gt;&lt;/p&gt;&lt;/section&gt;&lt;/li&gt;&lt;ul style=&quot;list-style-type: disc;&quot; class=&quot; list-paddingleft-2&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;/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%; 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;/section&gt;&lt;/li&gt;&lt;ul style=&quot;list-style-type: disc;&quot; class=&quot; list-paddingleft-2&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;TTL过期自动更新&lt;/span&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;background_update后台更新&lt;/span&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;主动Purge清理&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%; 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;（proxy_cache_use_stale）&lt;/span&gt;&lt;/p&gt;&lt;/section&gt;&lt;/li&gt;&lt;ul style=&quot;list-style-type: disc;&quot; class=&quot; list-paddingleft-2&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;/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%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: 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%; 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;ol 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: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot; list-paddingleft-2&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: 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;/section&gt;&lt;/li&gt;&lt;ul style=&quot;list-style-type: disc;&quot; class=&quot; list-paddingleft-2&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;Redis/Memcached作为缓存后端&lt;/span&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共享缓存&lt;/span&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;li&gt;&lt;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: 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;/section&gt;&lt;/li&gt;&lt;ul style=&quot;list-style-type: disc;&quot; class=&quot; list-paddingleft-2&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;CDN配置和优化&lt;/span&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;li&gt;&lt;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: 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;/section&gt;&lt;/li&gt;&lt;ul style=&quot;list-style-type: disc;&quot; class=&quot; list-paddingleft-2&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;ESI（Edge Side Includes）&lt;/span&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;SSI（Server Side Includes）&lt;/span&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;li&gt;&lt;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: 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;/section&gt;&lt;/li&gt;&lt;ul style=&quot;list-style-type: disc;&quot; class=&quot; list-paddingleft-2&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;/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%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: 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%; 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 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: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: wrap; background-color: rgb(255, 255, 255); box-sizing: border-box !important; overflow-wrap: break-word !important;&quot; class=&quot; list-paddingleft-2&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;Nginx官方文档 - ngx_http_proxy_module&lt;/span&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官方博客 - A Guide to Caching with 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); 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 Caching - MDN Web Docs&lt;/span&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;RFC 7234 - HTTP Caching&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%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: 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%; 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%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: 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%; 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;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%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: 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;657&quot;&gt;&lt;thead&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 0% 0% / 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 0% 0% / 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&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: rgba(204, 204, 204, 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;nginx -t&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;/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;nginx -T&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;/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: rgba(204, 204, 204, 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;nginx -s reload&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;/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;curl -I URL&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;/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: rgba(204, 204, 204, 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;find /cache -type f | wc -l&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;/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;du -sh /cache/*&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;/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: rgba(204, 204, 204, 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;rm -rf /cache/*&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;/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;ab -n 1000 -c 50 URL&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;/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%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: 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%; 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;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%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: 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;657&quot;&gt;&lt;thead&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 0% 0% / 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 0% 0% / 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 0% 0% / 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&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: rgba(204, 204, 204, 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;proxy_cache_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;无&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-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;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_cache&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;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: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-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: rgba(204, 204, 204, 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;proxy_cache_key&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;$scheme$proxy_host$request_uri&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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%; 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;proxy_cache_valid&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;/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: rgba(204, 204, 204, 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;proxy_cache_min_uses&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;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;请求N次后才缓存&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;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_cache_lock&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;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: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-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: rgba(204, 204, 204, 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;proxy_cache_lock_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: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-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;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_cache_use_stale&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;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: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-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: rgba(204, 204, 204, 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;proxy_cache_background_update&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;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: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-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;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_cache_revalidate&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;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: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-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: rgba(204, 204, 204, 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;proxy_cache_bypass&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;/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;proxy_no_cache&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;/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: rgba(204, 204, 204, 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;proxy_ignore_headers&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;/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%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: 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%; 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;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%; font-family: Optima, &amp;quot;Microsoft YaHei&amp;quot;, PingFangSC-regular, serif; text-wrap: 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;657&quot;&gt;&lt;thead&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 0% 0% / 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 0% 0% / 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&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: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 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: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-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;Cache Zone&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;/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: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;TTL&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;Time To Live，缓存有效期&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;Stale&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-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: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;Revalidate&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-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;Purge&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-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: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 Hit&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-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;Cache Miss&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-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: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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 Bypass&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-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;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: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-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: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;Conditional 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: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;条件请求（If-None-Match, If-Modified-Since）&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;ETag&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;margin: 0px;padding: 0px;outline: 0px;max-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: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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-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: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;/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;Vary&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; outline: 0px; word-break: break-all; hyphens: auto; border-color: rgba(204, 204, 204, 0.4); max-width: 100%; min-width: 85px; border-radius: 0px; overflow-wrap: break-word !important; box-sizing: border-box !important;&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-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;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;section class=&quot;mp_common_product_iframe_wrp&quot;&gt;&lt;section class=&quot;custom_select_card_wrp&quot;&gt;&lt;mp-common-product data-cardtype=&quot;0&quot; data-windowproduct=&quot;v2=HAzi-aCTae8-KA1ge4iO2X5De9v2ewb9f0Q4i-NQIKc4gWOLLP0EML-2zB0CFAwyPIirqyYT8-8-Fg&quot; data-title=&quot;NGINX经典教程&quot; data-type=&quot;0&quot; class=&quot;custom_select_card&quot; data-immutable=&quot;1&quot; data-req-scene=&quot;1&quot; has-insert-preloading=&quot;1&quot; data-url-params=&quot;{&amp;quot;article_info&amp;quot;:&amp;quot;eyJtcF9iaXoiOiIzMjU3Mjk0MzgzIiwiaXRlbV9pZHgiOjEsImFwcG1zZ2lkIjoyMjQ3NDk5NDkzLCJpdGVtX3Nob3dfdHlwZSI6MCwibXBfYXJ0aWNsZV9zY2VuZSI6MCwibXBfc3ViX3NjZW5lIjo5MCwibXBfZ2V0X2E4a2V5X3NjZW5lIjowLCJjYXJyaWVyX3R5cGUiOjAsInNlYXJjaF9jbGlja19pZCI6IiJ9&amp;quot;}&quot; data-exportkey=&quot;n_ChQIAhIQtWgT6NieB2CJEeIy6DOyGRLiAQIE97dBBAEAAAAAAAGEE50QqLsAAAAOpnltbLcz9gKNyK89dVj00qbVonygWUVYj9F25xJwQklNlqrILdoVIf7T87YkyRwHKDPRfJeoNetu0wzwE6NoBzuHJtTBhQK8VksxjSa%2BqVWt7LsPPVvKUcRuWoEecl7%2F0b4DA6vHpS5dloJUwp2%2FW93aV%2Fem3nYgDOw2oYMbTzR5QImtwYM4YN%2F4wcZ7Uy3maPo0aU8099iOh5JJN1l5fP96SBAPuwGcj8QAuermhVFFZffqtzd9evuehalXMywdlmuQDi54kL6VLA0%3D&quot; data-loaded=&quot;1&quot;&gt;&lt;/mp-common-product&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; text-align: justify; text-wrap: wrap; 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; 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%; font-size: 14px; 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; 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; font-size: 14px; 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; 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%; font-size: 14px; 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; 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; font-size: 14px; letter-spacing: 1px; 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; 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%; text-wrap: wrap; letter-spacing: 0.544px; 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.kubernetes.top/zb_users/upload/2026/01/202601211056204061284.png&quot; alt=&quot;image.png&quot; width=&quot;571&quot; height=&quot;188&quot; style=&quot;width: 571px; height: 188px;&quot;/&gt;&lt;/span&gt;&lt;/section&gt;</description><pubDate>Thu, 15 Jan 2026 10:53:06 +0800</pubDate></item><item><title>Kubernetes GPU 故障检测与自愈实践指南(初级版)</title><link>https://www.kubernetes.top/?id=447</link><description>&lt;section data-pm-slice=&quot;0 0 []&quot; 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-size: 17px;letter-spacing: 0.544px;text-wrap: wrap;font-family: &amp;#39;PingFang SC&amp;#39;, system-ui, -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;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.kubernetes.top/zb_users/upload/2026/01/202601091559078429473.png&quot; alt=&quot;dc215e89817a24740d9d1c17ed24c0c1.png&quot; width=&quot;624&quot; height=&quot;370&quot; style=&quot;width: 624px; height: 370px;&quot;/&gt;&lt;/section&gt;&lt;p dir=&quot;auto&quot; data-pm-slice=&quot;0 0 []&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);visibility: visible;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;visibility: visible&quot;&gt;本文介绍 Kubernetes 集群中 GPU 硬件故障的检测、诊断和自动恢复方案，综合字节跳动火山、 微软 AKS 和 NVIDIA 的公开的一些生产实践，为 AI Infra 工程师和 SRE 提供系统性的故障处理思路。这块实践经验较少，如有出入还请指出。&lt;/span&gt;&lt;/p&gt;&lt;h2 tabindex=&quot;-1&quot; dir=&quot;auto&quot; data-pm-slice=&quot;0 0 []&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 24px 0px 16px;padding: 0px 0px 0.3em;outline: 0px;max-width: 100%;box-sizing: border-box;color: rgba(0, 0, 0, 0.9);letter-spacing: 0.544px;text-align: justify;text-wrap: wrap;font-family: &amp;#39;PingFang SC&amp;#39;, system-ui, -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;background-color: rgb(255, 255, 255);line-height: 1.25;border-bottom: 1px solid rgba(209, 217, 224, 0.7);visibility: visible;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;visibility: visible&quot;&gt;为什么需要 GPU 故障自愈&lt;/span&gt;&lt;/h2&gt;&lt;p dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);visibility: visible;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;visibility: visible&quot;&gt;在大规模 GPU 集群中运行 AI 训练和推理任务时，硬件故障是不可避免的：&lt;/span&gt;&lt;/p&gt;&lt;ul 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);visibility: visible;overflow-wrap: break-word !important&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-weight: 600;visibility: visible&quot;&gt;训练中断损失大&lt;/span&gt;&lt;/p&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);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: ;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;p&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-weight: 600;visibility: visible&quot;&gt;人工运维成本高&lt;/span&gt;&lt;/p&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);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: ;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;p&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-weight: 600;visibility: visible&quot;&gt;误判影响可用性&lt;/span&gt;&lt;/p&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);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: ;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;p&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-weight: 600;visibility: visible&quot;&gt;资源浪费严重&lt;/span&gt;&lt;/p&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;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;/ul&gt;&lt;p&gt;&lt;mpcpc manual-insert=&quot;1&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;color: rgba(0, 0, 0, 0.9);font-family: &amp;#39;PingFang SC&amp;#39;, system-ui, -apple-system, BlinkMacSystemFont, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, 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;br/&gt;&lt;/mpcpc&gt;&lt;/p&gt;&lt;p dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-weight: 600&quot;&gt;核心目标：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 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;h2 tabindex=&quot;-1&quot; dir=&quot;auto&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 24px 0px 16px;padding: 0px 0px 0.3em;outline: 0px;max-width: 100%;box-sizing: border-box;color: rgba(0, 0, 0, 0.9);letter-spacing: 0.544px;text-align: justify;text-wrap: wrap;font-family: &amp;#39;PingFang SC&amp;#39;, system-ui, -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;background-color: rgb(255, 255, 255);line-height: 1.25;border-bottom: 1px solid rgba(209, 217, 224, 0.7);overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;一些常见 GPU 故障&lt;/span&gt;&lt;/h2&gt;&lt;p dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;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;p dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;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: 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: wrap;font-family: &amp;#39;PingFang SC&amp;#39;, system-ui, -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;background-color: rgb(255, 255, 255);box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;故障码查询可以看官网 https://docs.nvidia.com/deploy/xid-errors/analyzing-xid-catalog.html。下面仅仅列举几个常见错误，更多故障现象原因分析可以参考官网。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);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: wrap;font-family: &amp;#39;PingFang SC&amp;#39;, system-ui, -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;background-color: rgb(255, 255, 255);box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;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 tabindex=&quot;-1&quot; dir=&quot;auto&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 24px 0px 16px;padding: 0px;outline: 0px;font-size: 1.25em;max-width: 100%;box-sizing: border-box;color: rgba(0, 0, 0, 0.9);letter-spacing: 0.544px;text-align: justify;text-wrap: wrap;font-family: &amp;#39;PingFang SC&amp;#39;, system-ui, -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;background-color: rgb(255, 255, 255);line-height: 1.25;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;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 dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-weight: 600&quot;&gt;现象：&lt;/span&gt;&lt;/p&gt;&lt;ul 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;GPU 从 nvidia-smi 输出中消失&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;驱动报告 &amp;quot;GPU has fallen off the bus&amp;quot;&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-weight: bold&quot;&gt;XID 79（&lt;/span&gt;&lt;/span&gt;&lt;span data-pm-slice=&quot;0 0 []&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;color: #1A1A1A;font-family: NVIDIA, Arial, Helvetica, sans-serif;background-color: #F7F7F7;float: none;box-sizing: border-box !important;overflow-wrap: break-word !important;display: inline !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;ROBUST_CHANNEL_GPU_HAS_FALLEN_OFF_THE_BUS&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-weight: bold&quot;&gt;）&amp;nbsp;&lt;/span&gt;错误出现在内核日志中&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-weight: 600&quot;&gt;原因：&lt;/span&gt;&lt;/p&gt;&lt;ul 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;PCIe 链路不稳定（服务器散热、电源问题）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;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);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;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 dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-weight: 600&quot;&gt;影响：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&amp;nbsp;使用该 GPU 的所有容器立即失败，训练任务中断&lt;/span&gt;&lt;/p&gt;&lt;h3 tabindex=&quot;-1&quot; dir=&quot;auto&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 24px 0px 16px;padding: 0px;outline: 0px;font-size: 1.25em;max-width: 100%;box-sizing: border-box;color: rgba(0, 0, 0, 0.9);letter-spacing: 0.544px;text-align: justify;text-wrap: wrap;font-family: &amp;#39;PingFang SC&amp;#39;, system-ui, -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;background-color: rgb(255, 255, 255);line-height: 1.25;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;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 dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-weight: 600&quot;&gt;现象：&lt;/span&gt;&lt;/p&gt;&lt;ul 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;NVLink 带宽下降&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-weight: bold&quot;&gt;XID 74&amp;nbsp;&lt;/span&gt;（&lt;/span&gt;&lt;span data-pm-slice=&quot;0 0 []&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;color: #1A1A1A;font-family: NVIDIA, Arial, Helvetica, sans-serif;float: none;box-sizing: border-box !important;overflow-wrap: break-word !important;display: inline !important&quot;&gt;NVLINK_ERROR&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;）错误（NVLink 训练/初始化错误）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;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;/ul&gt;&lt;p dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-weight: 600&quot;&gt;原因：&lt;/span&gt;&lt;/p&gt;&lt;ul 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;NVLink 物理连接问题&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;Fabric Manager 配置错误&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;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;/ul&gt;&lt;p dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-weight: 600&quot;&gt;影响：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&amp;nbsp;分布式训练性能下降 50% 以上，甚至训练无法收敛&lt;/span&gt;&lt;/p&gt;&lt;h3 tabindex=&quot;-1&quot; dir=&quot;auto&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 24px 0px 16px;padding: 0px;outline: 0px;font-size: 1.25em;max-width: 100%;box-sizing: border-box;color: rgba(0, 0, 0, 0.9);letter-spacing: 0.544px;text-align: justify;text-wrap: wrap;font-family: &amp;#39;PingFang SC&amp;#39;, system-ui, -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;background-color: rgb(255, 255, 255);line-height: 1.25;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;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;table width=&quot;677&quot;&gt;&lt;thead style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);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);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);outline: 0px;hyphens: auto;border-top-width: 2px;max-width: 100%;overflow-wrap: break-word !important;box-sizing: border-box !important&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-weight: normal&quot;&gt;XID 类型&lt;/span&gt;&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);outline: 0px;hyphens: auto;border-top-width: 2px;max-width: 100%;overflow-wrap: break-word !important;box-sizing: border-box !important&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;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);outline: 0px;hyphens: auto;border-top-width: 2px;max-width: 100%;overflow-wrap: break-word !important;box-sizing: border-box !important&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;是否 ECC 相关&lt;/span&gt;&lt;/section&gt;&lt;/th&gt;&lt;th style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);outline: 0px;hyphens: auto;border-top-width: 2px;max-width: 100%;overflow-wrap: break-word !important;box-sizing: border-box !important&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;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;/table&gt;&lt;table width=&quot;677&quot;&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);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);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot; class=&quot;firstRow&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);outline: 0px;hyphens: auto;max-width: 100%;overflow-wrap: break-word !important;box-sizing: border-box !important&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;XID 92&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);outline: 0px;hyphens: auto;max-width: 100%;overflow-wrap: break-word !important;box-sizing: border-box !important&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;High single-bit ECC error rate&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);outline: 0px;hyphens: auto;max-width: 100%;overflow-wrap: break-word !important;box-sizing: border-box !important&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-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);outline: 0px;hyphens: auto;max-width: 100%;overflow-wrap: break-word !important;box-sizing: border-box !important&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;持续监控 &amp;amp; 排查硬件&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table width=&quot;677&quot;&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);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);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot; class=&quot;firstRow&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);outline: 0px;hyphens: auto;max-width: 100%;overflow-wrap: break-word !important;box-sizing: border-box !important&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;XID 94&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);outline: 0px;hyphens: auto;max-width: 100%;overflow-wrap: break-word !important;box-sizing: border-box !important&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;Contained ECC error&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);outline: 0px;hyphens: auto;max-width: 100%;overflow-wrap: break-word !important;box-sizing: border-box !important&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-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);outline: 0px;hyphens: auto;max-width: 100%;overflow-wrap: break-word !important;box-sizing: border-box !important&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-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;table width=&quot;677&quot;&gt;&lt;tbody style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);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);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot; class=&quot;firstRow&quot;&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);outline: 0px;hyphens: auto;max-width: 100%;overflow-wrap: break-word !important;box-sizing: border-box !important&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;XID 95&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);outline: 0px;hyphens: auto;max-width: 100%;overflow-wrap: break-word !important;box-sizing: border-box !important&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;Uncontained ECC error&lt;/span&gt;&lt;/section&gt;&lt;/td&gt;&lt;td style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);outline: 0px;hyphens: auto;max-width: 100%;overflow-wrap: break-word !important;box-sizing: border-box !important&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-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);outline: 0px;hyphens: auto;max-width: 100%;overflow-wrap: break-word !important;box-sizing: border-box !important&quot;&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;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;h3 tabindex=&quot;-1&quot; dir=&quot;auto&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px 0px 16px;padding: 0px;outline: 0px;font-weight: 400;font-size: 16px;max-width: 100%;box-sizing: border-box;text-wrap: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-weight: 600&quot;&gt;现象：&lt;/span&gt;&lt;/h3&gt;&lt;ul 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;XID 92、94、95 错误&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);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;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);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;训练 loss 出现 NaN 或异常波动&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-weight: 600&quot;&gt;原因：&lt;/span&gt;&lt;/p&gt;&lt;ul 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;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);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;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);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;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 dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-weight: 600&quot;&gt;影响：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 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 tabindex=&quot;-1&quot; dir=&quot;auto&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 24px 0px 16px;padding: 0px;outline: 0px;font-size: 1.25em;max-width: 100%;box-sizing: border-box;color: rgba(0, 0, 0, 0.9);letter-spacing: 0.544px;text-align: justify;text-wrap: wrap;font-family: &amp;#39;PingFang SC&amp;#39;, system-ui, -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;background-color: rgb(255, 255, 255);line-height: 1.25;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;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 dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-weight: 600&quot;&gt;现象：&lt;/span&gt;&lt;/p&gt;&lt;ul 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;NVML 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);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;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);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;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: ;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;span style=&quot;-webkit-tap-highlight-color: ;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;ContainerCreating&lt;em style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);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)&quot;&gt;&lt;/em&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 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;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-weight: 600&quot;&gt;原因：&lt;/span&gt;&lt;/p&gt;&lt;ul 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;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);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;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);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;Device Plugin 重启&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-weight: 600&quot;&gt;影响：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 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;h2 tabindex=&quot;-1&quot; dir=&quot;auto&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 24px 0px 16px;padding: 0px 0px 0.3em;outline: 0px;max-width: 100%;box-sizing: border-box;color: rgba(0, 0, 0, 0.9);letter-spacing: 0.544px;text-align: justify;text-wrap: wrap;font-family: &amp;#39;PingFang SC&amp;#39;, system-ui, -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;background-color: rgb(255, 255, 255);line-height: 1.25;border-bottom: 1px solid rgba(209, 217, 224, 0.7);overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;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 tabindex=&quot;-1&quot; dir=&quot;auto&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 24px 0px 16px;padding: 0px;outline: 0px;font-size: 1.25em;max-width: 100%;box-sizing: border-box;color: rgba(0, 0, 0, 0.9);letter-spacing: 0.544px;text-align: justify;text-wrap: wrap;font-family: &amp;#39;PingFang SC&amp;#39;, system-ui, -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;background-color: rgb(255, 255, 255);line-height: 1.25;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;核心工具：DCGM Exporter&lt;/span&gt;&lt;/h3&gt;&lt;h3 tabindex=&quot;-1&quot; dir=&quot;auto&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 24px 0px 16px;padding: 0px;outline: 0px;font-size: 1.25em;max-width: 100%;box-sizing: border-box;color: rgba(0, 0, 0, 0.9);letter-spacing: 0.544px;text-align: justify;text-wrap: wrap;font-family: &amp;#39;PingFang SC&amp;#39;, system-ui, -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;background-color: rgb(255, 255, 255);line-height: 1.25;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;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.kubernetes.top/zb_users/upload/2026/01/202601091559416906490.png&quot; alt=&quot;668843ab7bfe3681778c085335193a70.png&quot;/&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;NVIDIA Data Center GPU Manager (DCGM) 是生产环境 GPU 监控的事实标准。&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 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: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;https://openobserve.ai/blog/how-to-monitor-nvidia-gpu/ 介绍了 OpenObserve 和 DCGM Exporter 相结合的文档。&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;auto&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-top: 24px;margin-bottom: 16px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;clear: both;min-height: 1em;color: rgba(0, 0, 0, 0.9);letter-spacing: 0.544px;text-align: justify;text-wrap: wrap;font-family: &amp;#39;PingFang SC&amp;#39;, system-ui, -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;background-color: rgb(255, 255, 255);font-size: 1.25em;font-weight: 600;line-height: 1.25;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;新工具 NVSentinel&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);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: wrap;font-family: &amp;#39;PingFang SC&amp;#39;, system-ui, -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;background-color: rgb(255, 255, 255);box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;https://github.com/NVIDIA/NVSentinel/&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&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-size: 17px;letter-spacing: 0.544px;text-align: justify;text-wrap: wrap;font-family: &amp;#39;PingFang SC&amp;#39;, system-ui, -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;background-color: rgb(255, 255, 255);box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;strong data-start=&quot;92&quot; data-end=&quot;106&quot; data-pm-slice=&quot;0 0 []&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;NVSentinel&lt;span textstyle=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-weight: normal&quot;&gt;&amp;nbsp;是 NVIDIA 开源的&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong data-start=&quot;120&quot; data-end=&quot;156&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-weight: normal&quot;&gt;面向 Kubernetes GPU 集群的故障检测与自动恢复系统&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;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;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;ul 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;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: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;user-select: text&quot;&gt;：实时检测 GPU、NVSwitch 及系统级故障&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;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: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;user-select: text&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);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;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: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;user-select: text&quot;&gt;：可插拔健康监测器，配备标准化 gRPC 接口&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;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: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;user-select: text&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);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;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: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;user-select: text&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);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;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: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;user-select: text&quot;&gt;：基于 MongoDB 的事件存储，具有实时更新的变更流&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;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: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;user-select: text&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);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;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: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;user-select: text&quot;&gt;：通过云提供商和节点元数据自动增强健康事件&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&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-size: 17px;letter-spacing: 0.544px;text-wrap: wrap;font-family: &amp;#39;PingFang SC&amp;#39;, system-ui, -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;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.kubernetes.top/zb_users/upload/2026/01/202601091559544679351.jpg&quot; alt=&quot;b27c0c2cc5fedb3b6a48d213a8dcf429.jpg&quot; width=&quot;558&quot; height=&quot;583&quot; style=&quot;width: 558px; height: 583px;&quot;/&gt;&lt;/section&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-size: 17px;letter-spacing: 0.544px;text-align: justify;text-wrap: wrap;font-family: &amp;#39;PingFang SC&amp;#39;, system-ui, -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;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: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;user-select: text&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 8px 0px !important;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;display: inline-block&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-family: inherit&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;需要注意的是，该项目目前处于&amp;nbsp;&lt;/span&gt;&lt;strong data-start=&quot;524&quot; data-end=&quot;564&quot; data-pm-slice=&quot;0 0 []&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;实验预览阶段（experimental preview release）&lt;/span&gt;&lt;/strong&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;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;/span&gt;&lt;/section&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-size: 17px;letter-spacing: 0.544px;text-wrap: wrap;font-family: &amp;#39;PingFang SC&amp;#39;, system-ui, -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;background-color: rgb(255, 255, 255);text-align: center;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;/section&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;h3 tabindex=&quot;-1&quot; dir=&quot;auto&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 24px 0px 16px;padding: 0px;outline: 0px;font-size: 1.25em;max-width: 100%;box-sizing: border-box;color: rgba(0, 0, 0, 0.9);letter-spacing: 0.544px;text-align: justify;text-wrap: wrap;font-family: &amp;#39;PingFang SC&amp;#39;, system-ui, -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;background-color: rgb(255, 255, 255);line-height: 1.25;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;辅助工具：Node Problem Detector&lt;/span&gt;&lt;/h3&gt;&lt;p dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;用于将 GPU 故障转换为 Kubernetes 原生的 NodeCondition。&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;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;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;https://learn.microsoft.com/en-us/azure/aks/gpu-health-monitoring&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;auto&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-top: 24px;margin-bottom: 16px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;clear: both;min-height: 1em;color: rgba(0, 0, 0, 0.9);letter-spacing: 0.544px;text-align: justify;text-wrap: wrap;font-family: &amp;#39;PingFang SC&amp;#39;, system-ui, -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;background-color: rgb(255, 255, 255);font-size: 1.25em;font-weight: 600;line-height: 1.25;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;Kube 社区新工具 Node Readiness Controller&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);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: wrap;font-family: &amp;#39;PingFang SC&amp;#39;, system-ui, -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;background-color: rgb(255, 255, 255);box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;https://github.com/kubernetes-sigs/node-readiness-controller&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;auto&quot; data-pm-slice=&quot;0 0 []&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;user-select: text&quot;&gt;一个为节点提供细粒度声明准备的 Kubernetes 控制器。它确保节点只有在所有必要组件（如网络代理、GPU 驱动、存储驱动或自定义健康检查）完全准备好时才接受工作负载。&lt;/span&gt;&lt;/p&gt;&lt;ul 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;定义工作负载的&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;user-select: text&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 8px 0px !important;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;display: inline-block&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-family: inherit&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-weight: 600&quot;&gt;自定义准备度&lt;/span&gt;&lt;/span&gt;&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);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;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);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;支持持续准备&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;user-select: text&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);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: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;user-select: text&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;margin: 8px 0px !important;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;display: inline-block&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-family: inherit&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 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&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;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: ;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;NPD&lt;em style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);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)&quot;&gt;&lt;/em&gt;&lt;/span&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 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&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: 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: wrap;font-family: &amp;#39;PingFang SC&amp;#39;, system-ui, -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;background-color: rgb(255, 255, 255);box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;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 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-size: 17px;letter-spacing: 0.544px;text-align: justify;text-wrap: wrap;font-family: &amp;#39;PingFang SC&amp;#39;, system-ui, -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;background-color: rgb(255, 255, 255);box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;section class=&quot;code-snippet__fix code-snippet__js&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 10px 0px;padding: 0px;outline: 0px;max-width: 1000%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-size: 14px;color: rgb(51, 51, 51);position: relative;background-color: rgba(0, 0, 0, 0.03);border: 1px solid rgb(240, 240, 240);border-radius: 2px;display: flex;line-height: 26px&quot;&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;pre data-lang=&quot;makefile&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-top: 0px;margin-bottom: 0px;padding: 1em 1em 1em 0px;outline: 0px;max-width: 1000%;overflow-x: auto;white-space: normal;flex: 1 1 0%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;//&amp;nbsp;Need&amp;nbsp;GPU&amp;nbsp;ready
apiVersion:&amp;nbsp;v1
kind:&amp;nbsp;Pod
metadata:&amp;nbsp;
&amp;nbsp;name:&amp;nbsp;gpu-app-1
spec:&amp;nbsp;
&amp;nbsp;nodeReadinessRequirements:&amp;nbsp;
&amp;nbsp;-&amp;nbsp;conditionType:&amp;nbsp;&amp;quot;network.kubernetes.io/NetworkProxyReady&amp;quot;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;status:&amp;nbsp;&amp;quot;True&amp;quot;&amp;nbsp;
&amp;nbsp;-&amp;nbsp;conditionType:&amp;nbsp;&amp;quot;nvidia.com/GPUDriversReady&amp;quot;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;status:&amp;nbsp;&amp;quot;True&amp;quot;&amp;nbsp;
&amp;nbsp;containers:&amp;nbsp;
&amp;nbsp;&amp;nbsp;...&lt;/pre&gt;&lt;/section&gt;&lt;/section&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p dir=&quot;auto&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);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: wrap;font-family: &amp;#39;PingFang SC&amp;#39;, system-ui, -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;background-color: rgb(255, 255, 255);box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;font-family: mp-quote, &amp;#39;PingFang SC&amp;#39;, system-ui, -apple-system, BlinkMacSystemFont, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;line-height: 1.6;letter-spacing: 0.034em;font-weight: normal;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;此外，这个项目和&lt;span textstyle=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 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 style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; data-pm-slice=&quot;1 1 [&amp;quot;para&amp;quot;,{&amp;quot;tagName&amp;quot;:&amp;quot;p&amp;quot;,&amp;quot;attributes&amp;quot;:{&amp;quot;dir&amp;quot;:&amp;quot;auto&amp;quot;,&amp;quot;style&amp;quot;:&amp;quot;box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(31, 35, 40);font-family: -apple-system, \&amp;quot;system-ui\&amp;quot;, \&amp;quot;Segoe UI\&amp;quot;, \&amp;quot;Noto Sans\&amp;quot;, Helvetica, Arial, sans-serif, \&amp;quot;Apple Color Emoji\&amp;quot;, \&amp;quot;Segoe UI Emoji\&amp;quot;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;&amp;quot;},&amp;quot;namespaceURI&amp;quot;:&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;},&amp;quot;node&amp;quot;,{&amp;quot;tagName&amp;quot;:&amp;quot;strong&amp;quot;,&amp;quot;attributes&amp;quot;:{&amp;quot;style&amp;quot;:&amp;quot;box-sizing: border-box;font-weight: 600;&amp;quot;},&amp;quot;namespaceURI&amp;quot;:&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;}]&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-weight: normal&quot;&gt;Draino&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-weight: normal&quot;&gt;https://github.com/planetlabs/draino 有一些类似的效果，但是 DRAINO 有五年不更新了。&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p dir=&quot;auto&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-top: 24px;margin-bottom: 16px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;clear: both;min-height: 1em;color: rgba(0, 0, 0, 0.9);letter-spacing: 0.544px;text-align: justify;text-wrap: wrap;font-family: &amp;#39;PingFang SC&amp;#39;, system-ui, -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;background-color: rgb(255, 255, 255);font-size: 1.25em;font-weight: 600;line-height: 1.25;overflow-wrap: break-word !important&quot;&gt;&lt;strong style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;其他工具&lt;/strong&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);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: wrap;font-family: &amp;#39;PingFang SC&amp;#39;, system-ui, -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;background-color: rgb(255, 255, 255);box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;https://github.com/kubernetes-sigs/node-feature-discovery&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);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: wrap;font-family: &amp;#39;PingFang SC&amp;#39;, system-ui, -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;background-color: rgb(255, 255, 255);box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;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 tabindex=&quot;-1&quot; dir=&quot;auto&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 24px 0px 16px;padding: 0px 0px 0.3em;outline: 0px;max-width: 100%;box-sizing: border-box;color: rgba(0, 0, 0, 0.9);letter-spacing: 0.544px;text-align: justify;text-wrap: wrap;font-family: &amp;#39;PingFang SC&amp;#39;, system-ui, -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;background-color: rgb(255, 255, 255);line-height: 1.25;border-bottom: 1px solid rgba(209, 217, 224, 0.7);overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;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 dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;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 tabindex=&quot;-1&quot; dir=&quot;auto&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 24px 0px 16px;padding: 0px;outline: 0px;font-size: 1.25em;max-width: 100%;box-sizing: border-box;color: rgba(0, 0, 0, 0.9);letter-spacing: 0.544px;text-align: justify;text-wrap: wrap;font-family: &amp;#39;PingFang SC&amp;#39;, system-ui, -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;background-color: rgb(255, 255, 255);line-height: 1.25;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;第一层：NodeCondition（节点级）&lt;/span&gt;&lt;/h3&gt;&lt;p dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-weight: 600&quot;&gt;用途：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 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 dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-weight: 600&quot;&gt;标准 Condition 类型：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&amp;nbsp;（参考微软 AKS）&lt;/span&gt;&lt;/p&gt;&lt;ul 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0.2em 0.4em;outline: 0px;max-width: 100%;box-sizing: border-box;font-family: &amp;#39;Monaspace Neon&amp;#39;, ui-monospace, SFMono-Regular, &amp;#39;SF Mono&amp;#39;, Menlo, Consolas, &amp;#39;Liberation Mono&amp;#39;, monospace;font-size: 13.6px;white-space-collapse: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;GPUHealthy&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&amp;nbsp;GPU 子系统整体健康状态&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0.2em 0.4em;outline: 0px;max-width: 100%;box-sizing: border-box;font-family: &amp;#39;Monaspace Neon&amp;#39;, ui-monospace, SFMono-Regular, &amp;#39;SF Mono&amp;#39;, Menlo, Consolas, &amp;#39;Liberation Mono&amp;#39;, monospace;font-size: 13.6px;white-space-collapse: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;NVLinkHealthy&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&amp;nbsp;NVLink 连接状态&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0.2em 0.4em;outline: 0px;max-width: 100%;box-sizing: border-box;font-family: &amp;#39;Monaspace Neon&amp;#39;, ui-monospace, SFMono-Regular, &amp;#39;SF Mono&amp;#39;, Menlo, Consolas, &amp;#39;Liberation Mono&amp;#39;, monospace;font-size: 13.6px;white-space-collapse: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;GPUDriverHealthy&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&amp;nbsp;驱动和 NVML 可用性&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0.2em 0.4em;outline: 0px;max-width: 100%;box-sizing: border-box;font-family: &amp;#39;Monaspace Neon&amp;#39;, ui-monospace, SFMono-Regular, &amp;#39;SF Mono&amp;#39;, Menlo, Consolas, &amp;#39;Liberation Mono&amp;#39;, monospace;font-size: 13.6px;white-space-collapse: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;GPUMemoryHealthy&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&amp;nbsp;ECC 错误在阈值内&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-weight: 600&quot;&gt;触发动作：&lt;/span&gt;&lt;/p&gt;&lt;ul 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;自动添加 Taint:&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0.2em 0.4em;outline: 0px;max-width: 100%;box-sizing: border-box;font-family: &amp;#39;Monaspace Neon&amp;#39;, ui-monospace, SFMono-Regular, &amp;#39;SF Mono&amp;#39;, Menlo, Consolas, &amp;#39;Liberation Mono&amp;#39;, monospace;font-size: 13.6px;white-space-collapse: break-spaces;background-color: rgba(129, 139, 152, 0.12);border-radius: 6px;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;gpu.health/unhealthy=true:NoSchedule&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);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;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);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;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 tabindex=&quot;-1&quot; dir=&quot;auto&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 24px 0px 16px;padding: 0px;outline: 0px;font-size: 1.25em;max-width: 100%;box-sizing: border-box;color: rgba(0, 0, 0, 0.9);letter-spacing: 0.544px;text-align: justify;text-wrap: wrap;font-family: &amp;#39;PingFang SC&amp;#39;, system-ui, -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;background-color: rgb(255, 255, 255);line-height: 1.25;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;第二层：DeviceCondition/DeviceStatus（设备级）&lt;/span&gt;&lt;/h3&gt;&lt;p dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-weight: 600&quot;&gt;用途：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&amp;nbsp;在多 GPU 节点上隔离单个故障 GPU，避免&amp;quot;整机下线&amp;quot;&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-weight: 600&quot;&gt;设计思路：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&amp;nbsp;使用 DRA 的 ResourceClaim 的 Device Status 能力：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;https://kubernetes.io/docs/concepts/scheduling-eviction/dynamic-resource-allocation/&lt;a topic-id=&quot;mj9u6myj-1d892w&quot; data-topic=&quot;1&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);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;#resourceclaim&lt;/a&gt;-device-status （1.33 &amp;nbsp;Beta，默认开启） ，或者&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;创建 GPUDevice CRD 追踪每个 GPU 的健康状态（DRA 方案还不成熟的话，可以尝试这个方案 ）&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;font-weight: 600;overflow-wrap: break-word !important&quot;&gt;收益&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;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 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;8 卡节点中 1 卡故障，其他 7 卡仍可用&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;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;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;支持 MIG 场景的细粒度隔离&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 tabindex=&quot;-1&quot; dir=&quot;auto&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 24px 0px 16px;padding: 0px;outline: 0px;font-size: 1.25em;max-width: 100%;box-sizing: border-box;color: rgba(0, 0, 0, 0.9);letter-spacing: 0.544px;text-align: justify;text-wrap: wrap;font-family: &amp;#39;PingFang SC&amp;#39;, system-ui, -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;background-color: rgb(255, 255, 255);line-height: 1.25;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;第三层：WorkloadCondition（作业级）&lt;/span&gt;&lt;/h3&gt;&lt;p dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-weight: 600&quot;&gt;用途：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 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 dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-weight: bold&quot;&gt;与训练框架集成,&amp;nbsp;&lt;/span&gt;&lt;span textstyle=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;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;ul style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px 0px 0px 1.6em;outline: 0px;max-width: 100%;color: rgba(0, 0, 0, 0.9);font-size: 17px;letter-spacing: 0.544px;text-align: justify;text-wrap: wrap;font-family: &amp;#39;PingFang SC&amp;#39;, system-ui, -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;background-color: rgb(255, 255, 255);box-sizing: border-box !important;overflow-wrap: break-word !important&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;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;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;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);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;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;h2 tabindex=&quot;-1&quot; dir=&quot;auto&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 24px 0px 16px;padding: 0px 0px 0.3em;outline: 0px;max-width: 100%;box-sizing: border-box;color: rgba(0, 0, 0, 0.9);letter-spacing: 0.544px;text-align: justify;text-wrap: wrap;font-family: &amp;#39;PingFang SC&amp;#39;, system-ui, -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;background-color: rgb(255, 255, 255);line-height: 1.25;border-bottom: 1px solid rgba(209, 217, 224, 0.7);overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;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 dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-weight: 600&quot;&gt;核心原则：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 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 tabindex=&quot;-1&quot; dir=&quot;auto&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 24px 0px 16px;padding: 0px;outline: 0px;font-size: 1.25em;max-width: 100%;box-sizing: border-box;color: rgba(0, 0, 0, 0.9);letter-spacing: 0.544px;text-align: justify;text-wrap: wrap;font-family: &amp;#39;PingFang SC&amp;#39;, system-ui, -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;background-color: rgb(255, 255, 255);line-height: 1.25;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;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: 0px;margin-bottom: 0px;padding: 16px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: normal;letter-spacing: 0.544px;text-align: justify;font-family: &amp;#39;Monaspace Neon&amp;#39;, ui-monospace, SFMono-Regular, &amp;#39;SF Mono&amp;#39;, Menlo, Consolas, &amp;#39;Liberation Mono&amp;#39;, monospace;font-size: 13.6px;overflow: auto;line-height: 1.45;color: rgb(31, 35, 40);background-color: rgb(246, 248, 250);border-radius: 6px&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: normal;text-wrap: wrap;font-family: &amp;#39;Monaspace Neon&amp;#39;, ui-monospace, SFMono-Regular, &amp;#39;SF Mono&amp;#39;, Menlo, Consolas, &amp;#39;Liberation Mono&amp;#39;, monospace;background: rgba(0, 0, 0, 0);border-radius: 6px;border: 0px;display: inline;overflow: visible;line-height: inherit&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !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;风险&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;------------------------------------------------------------------&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;L0 &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: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;L1 &amp;nbsp; Cordon + Taint &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 新调度阻止 &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt; 1 分钟 &amp;nbsp; &amp;nbsp; 极低&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;L2 &amp;nbsp; 重启服务 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 设备插件重启 &amp;nbsp; &amp;nbsp;1-2 分钟 &amp;nbsp; &amp;nbsp; 低&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;(device-plugin/&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; DRA)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;L3 &amp;nbsp; 设备隔离 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 单 GPU 下线 &amp;nbsp; &amp;nbsp; &amp;lt; 1 分钟 &amp;nbsp; &amp;nbsp; 低&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;L4 &amp;nbsp; GPU Reset &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 使用该 GPU 的 &amp;nbsp; &amp;nbsp;5-10 分钟 &amp;nbsp; &amp;nbsp;中&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;(nvidia-smi -r) &amp;nbsp; &amp;nbsp; &amp;nbsp; 容器被杀&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;L5 &amp;nbsp; Node Drain + Reboot &amp;nbsp; 整个节点下线 &amp;nbsp; &amp;nbsp;10-30 分钟 &amp;nbsp; 高&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;L6 &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: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-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: 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: wrap;font-family: &amp;#39;PingFang SC&amp;#39;, system-ui, -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;background-color: rgb(255, 255, 255);box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;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 tabindex=&quot;-1&quot; dir=&quot;auto&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 24px 0px 16px;padding: 0px;outline: 0px;font-size: 1.25em;max-width: 100%;box-sizing: border-box;color: rgba(0, 0, 0, 0.9);letter-spacing: 0.544px;text-align: justify;text-wrap: wrap;font-family: &amp;#39;PingFang SC&amp;#39;, system-ui, -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;background-color: rgb(255, 255, 255);line-height: 1.25;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;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 dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-weight: 600&quot;&gt;1. 多信号融合（避免误判）&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-weight: 600&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-weight: normal&quot;&gt;下面是一些小例子&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-top: 0px;margin-bottom: 0px;padding: 16px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: normal;letter-spacing: 0.544px;text-align: justify;font-family: &amp;#39;Monaspace Neon&amp;#39;, ui-monospace, SFMono-Regular, &amp;#39;SF Mono&amp;#39;, Menlo, Consolas, &amp;#39;Liberation Mono&amp;#39;, monospace;font-size: 13.6px;overflow: auto;line-height: 1.45;color: rgb(31, 35, 40);background-color: rgb(246, 248, 250);border-radius: 6px&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: normal;text-wrap: wrap;font-family: &amp;#39;Monaspace Neon&amp;#39;, ui-monospace, SFMono-Regular, &amp;#39;SF Mono&amp;#39;, Menlo, Consolas, &amp;#39;Liberation Mono&amp;#39;, monospace;background: rgba(0, 0, 0, 0);border-radius: 6px;border: 0px;display: inline;overflow: visible;line-height: inherit&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;XID 79 出现 + nvidia-smi 失败 + DCGM 健康检查失败&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;→ 置信度 0.99 → 立即执行 L1 (Cordon)&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;ECC 错误数上升但 &amp;lt; 阈值&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;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;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-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: 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: wrap;font-family: &amp;#39;PingFang SC&amp;#39;, system-ui, -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;background-color: rgb(255, 255, 255);box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;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 dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-weight: 600&quot;&gt;2. 迟滞与冷却（避免抖动）&lt;/span&gt;&lt;/p&gt;&lt;ul 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;故障需持续 5 分钟才升级到 Unhealthy（类似 kubelet 和 KCM 标注节点状态的逻辑）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;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;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;短时 XID 尖峰进入 Suspect 状态观察&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-weight: 600&quot;&gt;3. 爆炸半径控制（避免雪崩）&lt;/span&gt;&lt;/p&gt;&lt;ul 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;每个机架同时最多 10% 节点处于 remediation 状态（类似 Kube 调度器的驱逐熔断设计）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;每个 Availability Zone 限制 5% 节点同时重启&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;NVSwitch &amp;nbsp;domain 内限制 1 个节点操作&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-weight: 600&quot;&gt;4. 工作负载感知&lt;/span&gt;&lt;/p&gt;&lt;ul 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;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);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;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);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;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;/li&gt;&lt;/ul&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);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: wrap;font-family: &amp;#39;PingFang SC&amp;#39;, system-ui, -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;background-color: rgb(255, 255, 255);box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;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 tabindex=&quot;-1&quot; dir=&quot;auto&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 24px 0px 16px;padding: 0px 0px 0.3em;outline: 0px;max-width: 100%;box-sizing: border-box;color: rgba(0, 0, 0, 0.9);letter-spacing: 0.544px;text-align: justify;text-wrap: wrap;font-family: &amp;#39;PingFang SC&amp;#39;, system-ui, -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;background-color: rgb(255, 255, 255);line-height: 1.25;border-bottom: 1px solid rgba(209, 217, 224, 0.7);overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;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 dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;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;h3 tabindex=&quot;-1&quot; dir=&quot;auto&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 24px 0px 16px;padding: 0px;outline: 0px;font-size: 1.25em;max-width: 100%;box-sizing: border-box;color: rgba(0, 0, 0, 0.9);letter-spacing: 0.544px;text-align: justify;text-wrap: wrap;font-family: &amp;#39;PingFang SC&amp;#39;, system-ui, -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;background-color: rgb(255, 255, 255);line-height: 1.25;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;Scheduler Plugin &amp;amp; Kueue 集成&lt;/span&gt;&lt;/h3&gt;&lt;p dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-weight: 600&quot;&gt;健康度评分算法：&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-top: 0px;margin-bottom: 0px;padding: 16px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: normal;letter-spacing: 0.544px;text-align: justify;font-family: &amp;#39;Monaspace Neon&amp;#39;, ui-monospace, SFMono-Regular, &amp;#39;SF Mono&amp;#39;, Menlo, Consolas, &amp;#39;Liberation Mono&amp;#39;, monospace;font-size: 13.6px;overflow: auto;line-height: 1.45;color: rgb(31, 35, 40);background-color: rgb(246, 248, 250);border-radius: 6px&quot;&gt;&lt;code style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: normal;text-wrap: wrap;font-family: &amp;#39;Monaspace Neon&amp;#39;, ui-monospace, SFMono-Regular, &amp;#39;SF Mono&amp;#39;, Menlo, Consolas, &amp;#39;Liberation Mono&amp;#39;, monospace;background: rgba(0, 0, 0, 0);border-radius: 6px;border: 0px;display: inline;overflow: visible;line-height: inherit&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;GPU Health Score = 1.0&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&amp;nbsp; × (1 - 0.4 × XID错误权重) &amp;nbsp; &amp;nbsp; &amp;nbsp;# 40% 权重&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&amp;nbsp; × (0.7 + 0.3 × NVLink带宽比) &amp;nbsp;# 30% 权重&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&amp;nbsp; × (1 - 0.2 × ECC错误权重) &amp;nbsp; &amp;nbsp; # 20% 权重&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !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;# 10% 权重&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;/&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;最终调度分数 = 健康度评分 × 100&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-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: 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: wrap;font-family: &amp;#39;PingFang SC&amp;#39;, system-ui, -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;background-color: rgb(255, 255, 255);box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;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 dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;感兴趣可以参考 KEP-5471: Extended Toleration Operators for Threshold-Based Placement，目前已经支持 SLA Based Scheduling，可以结合这里的错误率进行调度方面的优化。&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-weight: 600&quot;&gt;效果：&lt;/span&gt;&lt;/p&gt;&lt;ul 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;健康节点（score &amp;gt; 0.9）优先获得关键训练任务&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;中等健康节点（score 0.7-0.9）用于推理或低优先级任务&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;低健康节点（score &amp;lt; 0.7）仅用于可中断任务&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: 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: wrap;font-family: &amp;#39;PingFang SC&amp;#39;, system-ui, -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;background-color: rgb(255, 255, 255);box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;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 tabindex=&quot;-1&quot; dir=&quot;auto&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 24px 0px 16px;padding: 0px;outline: 0px;font-size: 1.25em;max-width: 100%;box-sizing: border-box;color: rgba(0, 0, 0, 0.9);letter-spacing: 0.544px;text-align: justify;text-wrap: wrap;font-family: &amp;#39;PingFang SC&amp;#39;, system-ui, -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;background-color: rgb(255, 255, 255);line-height: 1.25;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;DRA 健康属性&lt;/span&gt;&lt;/h3&gt;&lt;p dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;在 Dynamic Resource Allocation 时代，健康度成为设备选择的一等属性，建议尝试该方案。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;section class=&quot;code-snippet__fix code-snippet__js&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 0px 0px 24px;padding: 0px;outline: 0px;max-width: 1000%;font-size: 14px;color: rgb(51, 51, 51);position: relative;background-color: rgba(0, 0, 0, 0.03);border: 1px solid rgb(240, 240, 240);border-radius: 2px;display: flex;line-height: 26px;font-family: &amp;#39;PingFang SC&amp;#39;, system-ui, -apple-system, BlinkMacSystemFont, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;letter-spacing: 0.544px;text-align: justify;text-wrap: wrap;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;pre data-lang=&quot;makefile&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin-top: 0px;margin-bottom: 0px;padding: 1em 1em 1em 0px;outline: 0px;max-width: 1000%;overflow-x: auto;white-space: normal;flex: 1 1 0%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;apiVersion:&amp;nbsp;resource.k8s.io/v1
kind:&amp;nbsp;ResourceClaim
spec:
&amp;nbsp;devices:&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;requests:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;nbsp;deviceClassName:&amp;nbsp;gpu.nvidia.com
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;selectors:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;nbsp;cel:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;expression:&amp;nbsp;|
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;device.health.score&amp;nbsp;&amp;gt;&amp;nbsp;0.9&amp;nbsp;&amp;amp;&amp;amp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;device.health.xidErrors&amp;nbsp;==&amp;nbsp;0&amp;nbsp;&amp;amp;&amp;amp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;device.health.nvlinkStatus&amp;nbsp;==&amp;nbsp;&amp;quot;active&amp;quot;&lt;/pre&gt;&lt;/section&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);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: wrap;font-family: &amp;#39;PingFang SC&amp;#39;, system-ui, -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;background-color: rgb(255, 255, 255);box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;br style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;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 tabindex=&quot;-1&quot; dir=&quot;auto&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 24px 0px 16px;padding: 0px 0px 0.3em;outline: 0px;max-width: 100%;box-sizing: border-box;color: rgba(0, 0, 0, 0.9);letter-spacing: 0.544px;text-align: justify;text-wrap: wrap;font-family: &amp;#39;PingFang SC&amp;#39;, system-ui, -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;background-color: rgb(255, 255, 255);line-height: 1.25;border-bottom: 1px solid rgba(209, 217, 224, 0.7);overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;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 tabindex=&quot;-1&quot; dir=&quot;auto&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 24px 0px 16px;padding: 0px;outline: 0px;font-size: 1.25em;max-width: 100%;box-sizing: border-box;color: rgba(0, 0, 0, 0.9);letter-spacing: 0.544px;text-align: justify;text-wrap: wrap;font-family: &amp;#39;PingFang SC&amp;#39;, system-ui, -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;background-color: rgb(255, 255, 255);line-height: 1.25;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;第一阶段：检测与监控（1-2 周）&lt;/span&gt;&lt;/h3&gt;&lt;ul 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;部署 NVIDIA GPU Operator + DCGM Exporter&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;配置 Prometheus 采集 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);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;创建基础告警规则（XID 79, NVLink 降级）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;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;/li&gt;&lt;/ul&gt;&lt;p dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-weight: 600&quot;&gt;验证标准：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&amp;nbsp;能够在 5 分钟内发现并告警 GPU 故障&lt;/span&gt;&lt;/p&gt;&lt;h3 tabindex=&quot;-1&quot; dir=&quot;auto&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 24px 0px 16px;padding: 0px;outline: 0px;font-size: 1.25em;max-width: 100%;box-sizing: border-box;color: rgba(0, 0, 0, 0.9);letter-spacing: 0.544px;text-align: justify;text-wrap: wrap;font-family: &amp;#39;PingFang SC&amp;#39;, system-ui, -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;background-color: rgb(255, 255, 255);line-height: 1.25;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;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;/h3&gt;&lt;ul 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;部署 Node Problem Detector + 自定义 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);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;部署类似 Draino 实现自动 drain，未来推荐 node readiness controller 实现&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;配置节点替换策略（Cluster Autoscaler 或者 Karpenter）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;建立人工干预流程（GPU reset / 重启）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-weight: 600&quot;&gt;验证标准：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&amp;nbsp;掉卡故障 30 分钟内自动隔离节点&lt;/span&gt;&lt;/p&gt;&lt;h3 tabindex=&quot;-1&quot; dir=&quot;auto&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 24px 0px 16px;padding: 0px;outline: 0px;font-size: 1.25em;max-width: 100%;box-sizing: border-box;color: rgba(0, 0, 0, 0.9);letter-spacing: 0.544px;text-align: justify;text-wrap: wrap;font-family: &amp;#39;PingFang SC&amp;#39;, system-ui, -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;background-color: rgb(255, 255, 255);line-height: 1.25;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;第三阶段：设备级隔离（1-2 月）&lt;/span&gt;&lt;/h3&gt;&lt;ul 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;实现 DRA Device Status 或者 GPU Device CRD 和控制器&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;支持单 GPU 隔离（不影响同节点其他 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);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;添加故障验证循环（post-check）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;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 dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-weight: 600&quot;&gt;验证标准：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&amp;nbsp;多 GPU 节点单卡故障时，其他 GPU 仍可用&lt;/span&gt;&lt;/p&gt;&lt;h3 tabindex=&quot;-1&quot; dir=&quot;auto&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 24px 0px 16px;padding: 0px;outline: 0px;font-size: 1.25em;max-width: 100%;box-sizing: border-box;color: rgba(0, 0, 0, 0.9);letter-spacing: 0.544px;text-align: justify;text-wrap: wrap;font-family: &amp;#39;PingFang SC&amp;#39;, system-ui, -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;background-color: rgb(255, 255, 255);line-height: 1.25;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;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;/h3&gt;&lt;ul 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;实现 GPU 健康度评分相关的调度机制（新版本的 SLA based 调度，或者使用 Scheduler Plugin）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;Kueue/Volcano 集成健康度要求&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;DRA 驱动添加健康属性&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;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 dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-weight: 600&quot;&gt;验证标准：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 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 tabindex=&quot;-1&quot; dir=&quot;auto&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 24px 0px 16px;padding: 0px;outline: 0px;font-size: 1.25em;max-width: 100%;box-sizing: border-box;color: rgba(0, 0, 0, 0.9);letter-spacing: 0.544px;text-align: justify;text-wrap: wrap;font-family: &amp;#39;PingFang SC&amp;#39;, system-ui, -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;background-color: rgb(255, 255, 255);line-height: 1.25;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;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;ul 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;和 Workloads/作业对照和优化其体验&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;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);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;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);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;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 dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-weight: 600&quot;&gt;验证标准：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&amp;nbsp;能够准确追踪每次 GPU 故障到具体Worloads/作业&lt;/span&gt;&lt;/p&gt;&lt;h3 tabindex=&quot;-1&quot; dir=&quot;auto&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 24px 0px 16px;padding: 0px;outline: 0px;font-size: 1.25em;max-width: 100%;box-sizing: border-box;color: rgba(0, 0, 0, 0.9);letter-spacing: 0.544px;text-align: justify;text-wrap: wrap;font-family: &amp;#39;PingFang SC&amp;#39;, system-ui, -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;background-color: rgb(255, 255, 255);line-height: 1.25;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;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 dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-weight: 600&quot;&gt;1. 保守启动，逐步自动化&lt;/span&gt;&lt;/p&gt;&lt;ul 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;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);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;第二个月：启用自动 cordon，人工确认后 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);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;第三个月：启用完全自动 drain + reboot&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;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 dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-weight: 600&quot;&gt;2. 建立指标基线&lt;/span&gt;&lt;/p&gt;&lt;ul 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;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);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;跟踪误判率（false positive rate）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;测量 MTTR（Mean Time To Recovery）改善&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;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 dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-weight: 600&quot;&gt;3. 安全防护&lt;/span&gt;&lt;/p&gt;&lt;ul 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;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);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;GPU reset / reboot 需要审批（至少初期）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;使用 RBAC 限制 remediation controller 权限&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;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 dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-weight: 600&quot;&gt;4. 与容量规划集成&lt;/span&gt;&lt;/p&gt;&lt;ul 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;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);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;预测性维护（ECC 错误累积趋势）&lt;/span&gt;&lt;/section&gt;&lt;/li&gt;&lt;li&gt;&lt;section style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;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);padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;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&gt;&lt;br/&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-size: 17px;letter-spacing: 0.544px;text-align: justify;text-wrap: wrap;font-family: &amp;#39;PingFang SC&amp;#39;, system-ui, -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;background-color: rgb(255, 255, 255);box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;font-weight: bold;font-style: italic;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;注意：&lt;/span&gt;&lt;/span&gt;&lt;span leaf=&quot;&quot; data-pm-slice=&quot;1 1 [&amp;quot;para&amp;quot;,{&amp;quot;tagName&amp;quot;:&amp;quot;p&amp;quot;,&amp;quot;attributes&amp;quot;:{&amp;quot;dir&amp;quot;:&amp;quot;auto&amp;quot;,&amp;quot;style&amp;quot;:&amp;quot;box-sizing: border-box;margin-top: 0px;margin-bottom: 16px;color: rgb(31, 35, 40);font-family: -apple-system, \&amp;quot;system-ui\&amp;quot;, \&amp;quot;Segoe UI\&amp;quot;, \&amp;quot;Noto Sans\&amp;quot;, Helvetica, Arial, sans-serif, \&amp;quot;Apple Color Emoji\&amp;quot;, \&amp;quot;Segoe UI Emoji\&amp;quot;;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;&amp;quot;,&amp;quot;data-pm-slice&amp;quot;:&amp;quot;0 0 []&amp;quot;},&amp;quot;namespaceURI&amp;quot;:&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;}]&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;font-weight: bold;font-style: italic;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;这块作者实践经验较少，尝试学习了很多相关的材料，但是仍然有可能有些遗漏或者错误，还请指出。&lt;/span&gt;&lt;/span&gt;&lt;/section&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;h2 tabindex=&quot;-1&quot; dir=&quot;auto&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 24px 0px 16px;padding: 0px 0px 0.3em;outline: 0px;max-width: 100%;box-sizing: border-box;color: rgba(0, 0, 0, 0.9);letter-spacing: 0.544px;text-align: justify;text-wrap: wrap;font-family: &amp;#39;PingFang SC&amp;#39;, system-ui, -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;background-color: rgb(255, 255, 255);line-height: 1.25;border-bottom: 1px solid rgba(209, 217, 224, 0.7);overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;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 tabindex=&quot;-1&quot; dir=&quot;auto&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 24px 0px 16px;padding: 0px;outline: 0px;font-size: 1.25em;max-width: 100%;box-sizing: border-box;color: rgba(0, 0, 0, 0.9);letter-spacing: 0.544px;text-align: justify;text-wrap: wrap;font-family: &amp;#39;PingFang SC&amp;#39;, system-ui, -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;background-color: rgb(255, 255, 255);line-height: 1.25;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;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 dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-weight: 600&quot;&gt;字节跳动火山引擎：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&amp;nbsp;GPU 故障检测及自愈：大幅提升 AI 场景的硬件故障运维效率&amp;nbsp;&lt;a class=&quot;normal_text_link mp_article_text_link&quot; target=&quot;_blank&quot; href=&quot;https://mp.weixin.qq.com/s?__biz=Mzk0NDMzNjkxNw==&amp;mid=2247486285&amp;idx=1&amp;sn=10bc6ad83db34fbcededa32f3e57097f&amp;scene=21#wechat_redirect&quot; textvalue=&quot;GPU 故障检测及自愈：大幅提升 AI 场景的硬件故障运维效率&quot; data-itemshowtype=&quot;0&quot; linktype=&quot;text&quot; data-linktype=&quot;2&quot; hasload=&quot;1&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;color: rgb(87, 107, 149);-webkit-user-drag: none;cursor: default;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;GPU 故障检测及自愈：大幅提升 AI 场景的硬件故障运维效率&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-weight: 600&quot;&gt;微软 Azure AKS：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&amp;nbsp;Node Problem Detector 官方文档 https://learn.microsoft.com/en-us/azure/aks/node-problem-detector&lt;/span&gt;&lt;/p&gt;&lt;h3 tabindex=&quot;-1&quot; dir=&quot;auto&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 24px 0px 16px;padding: 0px;outline: 0px;font-size: 1.25em;max-width: 100%;box-sizing: border-box;color: rgba(0, 0, 0, 0.9);letter-spacing: 0.544px;text-align: justify;text-wrap: wrap;font-family: &amp;#39;PingFang SC&amp;#39;, system-ui, -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;background-color: rgb(255, 255, 255);line-height: 1.25;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;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 dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-weight: 600&quot;&gt;GPU 掉卡排查实战：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&amp;nbsp;记录一个有意思的问题的排查过程 -- K8S Pod GPU 卡掉了怎么办?&amp;nbsp;&lt;a class=&quot;normal_text_link mp_article_text_link&quot; target=&quot;_blank&quot; href=&quot;https://mp.weixin.qq.com/s?__biz=MzI1ODMzNTQ3Mg==&amp;mid=2247483738&amp;idx=1&amp;sn=2265c47ab188b1a732020370657563fd&amp;scene=21#wechat_redirect&quot; textvalue=&quot;记录一个有意思的问题的排查过程 -- K8S Pod GPU 卡掉了怎么办?&quot; data-itemshowtype=&quot;0&quot; linktype=&quot;text&quot; data-linktype=&quot;2&quot; hasload=&quot;1&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);padding: 0px;outline: 0px;color: rgb(87, 107, 149);-webkit-user-drag: none;cursor: default;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;记录一个有意思的问题的排查过程 -- K8S Pod GPU 卡掉了怎么办?&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-weight: 600&quot;&gt;Kubernetes GPU 故障排查：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&amp;nbsp;在 Kubernetes 集群上的 GPU 掉卡和故障排查 https://nolebase.ayaka.io/zh-CN/笔记/%20基础设施/%20Kubernetes/在%20Kubernetes%20集群上的%20GPU%20掉卡和故障排查.html&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-weight: 600&quot;&gt;GPU 异常消失处理：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&amp;nbsp;nvidia-smi GPU异常消失 程序中断 https://www.cnblogs.com/jisongxie/p/10405302.html&lt;/span&gt;&lt;/p&gt;&lt;h3 tabindex=&quot;-1&quot; dir=&quot;auto&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 24px 0px 16px;padding: 0px;outline: 0px;font-size: 1.25em;max-width: 100%;box-sizing: border-box;color: rgba(0, 0, 0, 0.9);letter-spacing: 0.544px;text-align: justify;text-wrap: wrap;font-family: &amp;#39;PingFang SC&amp;#39;, system-ui, -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;background-color: rgb(255, 255, 255);line-height: 1.25;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;NVIDIA 官方资源&lt;/span&gt;&lt;/h3&gt;&lt;p dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-weight: 600&quot;&gt;GPU Debug Guidelines：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&amp;nbsp;https://docs.nvidia.com/deploy/gpu-debug-guidelines/index.html&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-weight: 600&quot;&gt;DCGM Exporter：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&amp;nbsp;https://github.com/NVIDIA/dcgm-exporter&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);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: wrap;font-family: &amp;#39;PingFang SC&amp;#39;, system-ui, -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;background-color: rgb(255, 255, 255);box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;https://docs.nvidia.com/datacenter/dcgm/latest/gpu-telemetry/dcgm-exporter.html&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-weight: 600&quot;&gt;GPU Operator：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&amp;nbsp;https://docs.nvidia.com/datacenter/cloud-native/gpu-operator/&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span textstyle=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;font-weight: bold&quot;&gt;NVSentinel（实验预览发布）：&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;https://github.com/NVIDIA/NVSentinel/&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-weight: 600&quot;&gt;DRA Driver for GPU：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&amp;nbsp;https://github.com/NVIDIA/k8s-dra-driver-gpu&lt;/span&gt;&lt;/p&gt;&lt;h3 tabindex=&quot;-1&quot; dir=&quot;auto&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 24px 0px 16px;padding: 0px;outline: 0px;font-size: 1.25em;max-width: 100%;box-sizing: border-box;color: rgba(0, 0, 0, 0.9);letter-spacing: 0.544px;text-align: justify;text-wrap: wrap;font-family: &amp;#39;PingFang SC&amp;#39;, system-ui, -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;background-color: rgb(255, 255, 255);line-height: 1.25;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;Kubernetes 社区&lt;/span&gt;&lt;/h3&gt;&lt;p dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-weight: 600&quot;&gt;Node Problem Detector：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&amp;nbsp;https://github.com/kubernetes/node-problem-detector&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-weight: 600&quot;&gt;Node Readiness Controller：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&amp;nbsp;https://github.com/kubernetes-sigs/node-readiness-controller&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-weight: 600&quot;&gt;Dynamic Resource Allocation：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&amp;nbsp;https://kubernetes.io/docs/concepts/scheduling-eviction/dynamic-resource-allocation/&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-weight: 600&quot;&gt;Draino (自动 drain 工具)：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&amp;nbsp;https://github.com/planetlabs/draino&lt;/span&gt;&lt;/p&gt;&lt;h3 tabindex=&quot;-1&quot; dir=&quot;auto&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);margin: 24px 0px 16px;padding: 0px;outline: 0px;font-size: 1.25em;max-width: 100%;box-sizing: border-box;color: rgba(0, 0, 0, 0.9);letter-spacing: 0.544px;text-align: justify;text-wrap: wrap;font-family: &amp;#39;PingFang SC&amp;#39;, system-ui, -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;background-color: rgb(255, 255, 255);line-height: 1.25;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;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 dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-weight: 600&quot;&gt;Kubernetes GPU 可观测性集成：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&amp;nbsp;https://cloud-atlas.readthedocs.io/zh-cn/latest/kubernetes/gpu/intergrate_gpu_telemetry_into_k8s.html&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;auto&quot; 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: wrap;color: rgb(31, 35, 40);font-family: -apple-system, &amp;#39;system-ui&amp;#39;, &amp;#39;Segoe UI&amp;#39;, &amp;#39;Noto Sans&amp;#39;, Helvetica, Arial, sans-serif, &amp;#39;Apple Color Emoji&amp;#39;, &amp;#39;Segoe UI Emoji&amp;#39;;background-color: rgb(255, 255, 255);overflow-wrap: break-word !important&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;font-weight: 600&quot;&gt;DCGM Exporter 源码分析：&lt;/span&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&amp;nbsp;https://www.jianshu.com/p/f38e58864496&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%;clear: both;min-height: 1em;color: rgba(0, 0, 0, 0.9);font-family: &amp;#39;PingFang SC&amp;#39;, system-ui, -apple-system, BlinkMacSystemFont, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;font-size: 17px;text-align: justify;text-wrap: wrap;background-color: rgb(255, 255, 255);letter-spacing: 0.578px;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;font-family: -apple-system-font, BlinkMacSystemFont, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;PingFang SC&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, Arial, sans-serif;font-size: 14px;letter-spacing: 0.544px;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;&lt;span leaf=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important&quot;&gt;文章转载自&lt;span textstyle=&quot;&quot; style=&quot;-webkit-tap-highlight-color: ;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;color: #0052FF&quot;&gt;云原生探索号&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&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;#39;PingFang SC&amp;#39;, system-ui, -apple-system, BlinkMacSystemFont, &amp;#39;Helvetica Neue&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, 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;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;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;#39;Helvetica Neue&amp;#39;, &amp;#39;PingFang SC&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, 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;#39;Helvetica Neue&amp;#39;, &amp;#39;PingFang SC&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, 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;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;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;#39;Helvetica Neue&amp;#39;, &amp;#39;PingFang SC&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, 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;#39;Helvetica Neue&amp;#39;, &amp;#39;PingFang SC&amp;#39;, &amp;#39;Hiragino Sans GB&amp;#39;, &amp;#39;Microsoft YaHei UI&amp;#39;, &amp;#39;Microsoft YaHei&amp;#39;, 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;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: 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;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.kubernetes.top/zb_users/upload/2026/01/202601091600481191351.png&quot; alt=&quot;image.png&quot; width=&quot;575&quot; height=&quot;187&quot; style=&quot;width: 575px; height: 187px;&quot;/&gt;&lt;/span&gt;&lt;/section&gt;</description><pubDate>Tue, 06 Jan 2026 15:57:28 +0800</pubDate></item></channel></rss>