<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="675" viewBox="0 0 1200 675">
  <defs>
    <linearGradient id="bg" x1="0" y1="0" x2="1" y2="1">
      <stop offset="0%" stop-color="#f7fbff"/>
      <stop offset="100%" stop-color="#eef6ff"/>
    </linearGradient>
    <marker id="arrow" markerWidth="12" markerHeight="12" refX="10" refY="6" orient="auto">
      <path d="M0,0 L12,6 L0,12 z" fill="#3b82f6"/>
    </marker>
  </defs>
  <rect width="1200" height="675" fill="url(#bg)"/>
  <text x="60" y="62" font-size="30" fill="#102a43" font-family="sans-serif" font-weight="700">CNI 插件链路与网络接入关系</text>
  <g font-family="sans-serif" font-size="22" text-anchor="middle">
    <rect x="70" y="150" rx="18" ry="18" width="180" height="84" fill="#dbeafe" stroke="#60a5fa" stroke-width="3"/>
    <text x="160" y="200" fill="#1e3a8a">Pod 创建</text>
    <rect x="320" y="150" rx="18" ry="18" width="190" height="84" fill="#e0f2fe" stroke="#38bdf8" stroke-width="3"/>
    <text x="415" y="194" fill="#075985">运行时调用 CNI</text>
    <text x="415" y="220" fill="#075985">ADD / DEL</text>
    <rect x="580" y="150" rx="18" ry="18" width="190" height="84" fill="#dcfce7" stroke="#22c55e" stroke-width="3"/>
    <text x="675" y="194" fill="#166534">主插件</text>
    <text x="675" y="220" fill="#166534">创建接口 / 分配 IP</text>
    <rect x="840" y="150" rx="18" ry="18" width="220" height="84" fill="#fef3c7" stroke="#f59e0b" stroke-width="3"/>
    <text x="950" y="194" fill="#92400e">附加插件</text>
    <text x="950" y="220" fill="#92400e">策略 / DNS / 带宽</text>
  </g>
  <g stroke="#3b82f6" stroke-width="5" fill="none" marker-end="url(#arrow)">
    <path d="M250 192 L320 192"/>
    <path d="M510 192 L580 192"/>
    <path d="M770 192 L840 192"/>
  </g>
  <g>
    <rect x="120" y="330" width="960" height="220" rx="24" fill="#ffffff" stroke="#bfdbfe" stroke-width="3"/>
    <text x="150" y="375" font-size="24" fill="#1d4ed8" font-family="sans-serif" font-weight="700">节点侧完成的关键动作</text>
    <g font-family="sans-serif" font-size="20" fill="#334155">
      <circle cx="180" cy="435" r="10" fill="#60a5fa"/><text x="205" y="442">创建 veth 与网络命名空间绑定</text>
      <circle cx="180" cy="480" r="10" fill="#22c55e"/><text x="205" y="487">分配 Pod IP 并写入路由信息</text>
      <circle cx="180" cy="525" r="10" fill="#f59e0b"/><text x="205" y="532">挂载网络策略与转发规则</text>
    </g>
    <rect x="760" y="395" width="270" height="120" rx="18" fill="#eff6ff" stroke="#93c5fd" stroke-width="2"/>
    <text x="895" y="442" font-size="22" fill="#1e40af" font-family="sans-serif" text-anchor="middle">输出结果</text>
    <text x="895" y="478" font-size="20" fill="#334155" font-family="sans-serif" text-anchor="middle">Pod 获得可通信网络身份</text>
  </g>
</svg>