<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="680" viewBox="0 0 1200 680">
  <rect width="1200" height="680" fill="#eff6ff"/>
  <defs>
    <marker id="arrow" markerWidth="12" markerHeight="12" refX="10" refY="6" orient="auto"><path d="M2,2 L10,6 L2,10 Z" fill="#2563eb"/></marker>
  </defs>
  <g font-family="Arial, 'Microsoft YaHei', sans-serif">
    <text x="70" y="72" font-size="30" font-weight="700" fill="#172554">解析失败排查路径</text>
    <text x="70" y="106" font-size="17" fill="#1d4ed8">沿请求链路逐段验证，区分名称错误、CoreDNS、Service、网络策略和上游解析问题</text>

    <rect x="70" y="172" width="155" height="96" rx="18" fill="#ffffff" stroke="#60a5fa" stroke-width="2"/>
    <text x="148" y="210" text-anchor="middle" font-size="20" font-weight="700" fill="#1e3a8a">Pod 内测试</text>
    <text x="148" y="238" text-anchor="middle" font-size="15" fill="#1d4ed8">nslookup / dig</text>

    <line x1="225" y1="220" x2="310" y2="220" stroke="#2563eb" stroke-width="3" marker-end="url(#arrow)"/>
    <polygon points="395,158 500,220 395,282 290,220" fill="#dbeafe" stroke="#2563eb" stroke-width="2"/>
    <text x="395" y="214" text-anchor="middle" font-size="18" font-weight="700" fill="#1e40af">名称是否正确</text>
    <text x="395" y="240" text-anchor="middle" font-size="14" fill="#2563eb">FQDN / namespace</text>

    <line x1="500" y1="220" x2="585" y2="220" stroke="#2563eb" stroke-width="3" marker-end="url(#arrow)"/>
    <rect x="590" y="172" width="165" height="96" rx="18" fill="#ecfeff" stroke="#0891b2" stroke-width="2"/>
    <text x="673" y="210" text-anchor="middle" font-size="20" font-weight="700" fill="#155e75">CoreDNS</text>
    <text x="673" y="238" text-anchor="middle" font-size="15" fill="#0e7490">Pod、日志、配置</text>

    <line x1="755" y1="220" x2="840" y2="220" stroke="#2563eb" stroke-width="3" marker-end="url(#arrow)"/>
    <polygon points="925,158 1030,220 925,282 820,220" fill="#dcfce7" stroke="#16a34a" stroke-width="2"/>
    <text x="925" y="214" text-anchor="middle" font-size="18" font-weight="700" fill="#166534">Service 存在</text>
    <text x="925" y="240" text-anchor="middle" font-size="14" fill="#15803d">ClusterIP / endpoints</text>

    <line x1="925" y1="282" x2="925" y2="350" stroke="#2563eb" stroke-width="3" marker-end="url(#arrow)"/>
    <rect x="835" y="350" width="180" height="94" rx="18" fill="#f0fdf4" stroke="#22c55e" stroke-width="2"/>
    <text x="925" y="386" text-anchor="middle" font-size="20" font-weight="700" fill="#166534">转发路径</text>
    <text x="925" y="414" text-anchor="middle" font-size="15" fill="#15803d">kube-proxy / CNI</text>

    <line x1="835" y1="397" x2="735" y2="397" stroke="#2563eb" stroke-width="3" marker-end="url(#arrow)"/>
    <polygon points="630,335 735,397 630,459 525,397" fill="#fef3c7" stroke="#f59e0b" stroke-width="2"/>
    <text x="630" y="391" text-anchor="middle" font-size="18" font-weight="700" fill="#92400e">策略放行</text>
    <text x="630" y="417" text-anchor="middle" font-size="14" fill="#b45309">NetworkPolicy / 防火墙</text>

    <line x1="525" y1="397" x2="425" y2="397" stroke="#2563eb" stroke-width="3" marker-end="url(#arrow)"/>
    <rect x="250" y="350" width="175" height="94" rx="18" fill="#fef2f2" stroke="#ef4444" stroke-width="2"/>
    <text x="338" y="386" text-anchor="middle" font-size="20" font-weight="700" fill="#991b1b">上游解析</text>
    <text x="338" y="414" text-anchor="middle" font-size="15" fill="#b91c1c">Node DNS / 外部域名</text>

    <line x1="338" y1="444" x2="338" y2="510" stroke="#2563eb" stroke-width="3" marker-end="url(#arrow)"/>
    <line x1="630" y1="459" x2="630" y2="510" stroke="#2563eb" stroke-width="3" marker-end="url(#arrow)"/>
    <line x1="925" y1="444" x2="925" y2="510" stroke="#2563eb" stroke-width="3" marker-end="url(#arrow)"/>

    <rect x="258" y="510" width="760" height="78" rx="20" fill="#ffffff" stroke="#93c5fd" stroke-width="2"/>
    <text x="638" y="540" text-anchor="middle" font-size="20" font-weight="700" fill="#1e3a8a">定位结果</text>
    <text x="638" y="568" text-anchor="middle" font-size="15" fill="#1d4ed8">把失败点记录到名称、插件、服务对象、网络转发或上游解析五类之一</text>

    <rect x="72" y="620" width="1056" height="38" rx="19" fill="#ffffff" stroke="#bfdbfe"/>
    <text x="600" y="644" text-anchor="middle" font-size="15" fill="#1e40af">排查重点：每一步都用命令验证输入和输出，避免在 CoreDNS 与网络层之间来回猜测</text>
  </g>
</svg>
