| 1 | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 720" width="1280" height="720"> |
| 2 | <defs> |
| 3 | <pattern id="bpGridMajor" x="0" y="0" width="40" height="40" patternUnits="userSpaceOnUse" data-pptx-pattern="lgGrid"> |
| 4 | <rect width="40" height="40" fill="#0E2A47"/> |
| 5 | <path d="M 40 0 L 0 0 0 40" fill="none" stroke="#2D4A6B" stroke-width="0.6"/> |
| 6 | </pattern> |
| 7 | <pattern id="bpGridMinor" x="0" y="0" width="8" height="8" patternUnits="userSpaceOnUse" data-pptx-pattern="smGrid"> |
| 8 | <rect width="8" height="8" fill="#0E2A47"/> |
| 9 | <path d="M 8 0 L 0 0 0 8" fill="none" stroke="#1A3A5C" stroke-width="0.3"/> |
| 10 | </pattern> |
| 11 | </defs> |
| 12 | |
| 13 | <g id="bg"> |
| 14 | <rect width="1280" height="720" fill="#0E2A47"/> |
| 15 | <rect width="1280" height="720" fill="url(#bpGridMinor)" opacity="0.4"/> |
| 16 | <rect width="1280" height="720" fill="url(#bpGridMajor)" opacity="0.6"/> |
| 17 | </g> |
| 18 | |
| 19 | <g id="header"> |
| 20 | <text x="60" y="42" font-family="Arial, 'Microsoft YaHei', sans-serif" font-size="30" font-weight="bold" fill="#F0F4F8">Worker Node: Three Layers</text> |
| 21 | <text x="1220" y="42" font-family="Consolas, 'Courier New', monospace" font-size="11" fill="#A0B8D0" text-anchor="end">P04 / 10</text> |
| 22 | <line x1="60" y1="58" x2="1220" y2="58" stroke="#2D4A6B" stroke-width="0.5"/> |
| 23 | <text x="60" y="78" font-family="Arial, 'Microsoft YaHei', sans-serif" font-size="13" fill="#6B85A3">EXPLODED ISOMETRIC VIEW · KUBELET / KUBE-PROXY / CONTAINER RUNTIME</text> |
| 24 | </g> |
| 25 | |
| 26 | <g id="isometric-node"> |
| 27 | <polygon points="400,200 700,355 700,505 400,650 100,505 100,355" fill="#1A3A5C" fill-opacity="0.4" stroke="#5BA3E0" stroke-width="1.8"/> |
| 28 | <line x1="400" y1="200" x2="400" y2="350" stroke="#5BA3E0" stroke-width="1"/> |
| 29 | <line x1="400" y1="350" x2="100" y2="355" stroke="#5BA3E0" stroke-width="1"/> |
| 30 | <line x1="400" y1="350" x2="700" y2="355" stroke="#5BA3E0" stroke-width="1"/> |
| 31 | |
| 32 | <g id="kubelet-layer"> |
| 33 | <polygon points="400,275 580,368 580,398 400,305" fill="#FFB627" fill-opacity="0.15" stroke="#FFB627" stroke-width="1.5"/> |
| 34 | <polygon points="400,275 220,368 220,398 400,305" fill="#FFB627" fill-opacity="0.15" stroke="#FFB627" stroke-width="1.5"/> |
| 35 | <polygon points="220,368 400,275 580,368 400,460" fill="none" stroke="#FFB627" stroke-width="0.5" stroke-dasharray="2 3"/> |
| 36 | <text x="400" y="370" font-family="Consolas, 'Courier New', monospace" font-size="14" fill="#FFB627" text-anchor="middle" font-weight="bold">kubelet</text> |
| 37 | <text x="400" y="390" font-family="Arial, 'Microsoft YaHei', sans-serif" font-size="11" fill="#F0F4F8" text-anchor="middle">node agent</text> |
| 38 | </g> |
| 39 | |
| 40 | <g id="kubeproxy-layer"> |
| 41 | <polygon points="400,455 580,548 580,578 400,485" fill="#5BA3E0" fill-opacity="0.12" stroke="#5BA3E0" stroke-width="1.3"/> |
| 42 | <polygon points="400,455 220,548 220,578 400,485" fill="#5BA3E0" fill-opacity="0.12" stroke="#5BA3E0" stroke-width="1.3"/> |
| 43 | <text x="400" y="540" font-family="Consolas, 'Courier New', monospace" font-size="13" fill="#5BA3E0" text-anchor="middle" font-weight="bold">kube-proxy</text> |
| 44 | <text x="400" y="560" font-family="Arial, 'Microsoft YaHei', sans-serif" font-size="11" fill="#F0F4F8" text-anchor="middle">service rules</text> |
| 45 | </g> |
| 46 | |
| 47 | <g id="runtime-layer"> |
| 48 | <polygon points="400,580 580,673 580,505 400,505" fill="#3E7AB8" fill-opacity="0.12" stroke="#3E7AB8" stroke-width="1.3"/> |
| 49 | <polygon points="400,580 220,673 220,505 400,505" fill="#3E7AB8" fill-opacity="0.12" stroke="#3E7AB8" stroke-width="1.3"/> |
| 50 | <text x="400" y="620" font-family="Consolas, 'Courier New', monospace" font-size="13" fill="#A0B8D0" text-anchor="middle" font-weight="bold">container runtime</text> |
| 51 | <text x="400" y="640" font-family="Arial, 'Microsoft YaHei', sans-serif" font-size="10" fill="#A0B8D0" text-anchor="middle">CRI · containerd / CRI-O</text> |
| 52 | </g> |
| 53 | |
| 54 | <g id="pods-inside"> |
| 55 | <polygon points="335,572 365,587 365,597 335,582" fill="#7FD99F" fill-opacity="0.2" stroke="#7FD99F" stroke-width="0.8"/> |
| 56 | <polygon points="380,594 410,609 410,619 380,604" fill="#7FD99F" fill-opacity="0.2" stroke="#7FD99F" stroke-width="0.8"/> |
| 57 | <polygon points="425,616 455,631 455,641 425,626" fill="#7FD99F" fill-opacity="0.2" stroke="#7FD99F" stroke-width="0.8"/> |
| 58 | </g> |
| 59 | |
| 60 | <g id="dimension-lines"> |
| 61 | <line x1="660" y1="200" x2="720" y2="200" stroke="#5BA3E0" stroke-width="0.6"/> |
| 62 | <line x1="660" y1="650" x2="720" y2="650" stroke="#5BA3E0" stroke-width="0.6"/> |
| 63 | <line x1="710" y1="200" x2="710" y2="650" stroke="#5BA3E0" stroke-width="0.6"/> |
| 64 | <polygon points="710,200 706,210 714,210" fill="#5BA3E0"/> |
| 65 | <polygon points="710,650 706,640 714,640" fill="#5BA3E0"/> |
| 66 | <rect x="685" y="415" width="50" height="20" fill="#0E2A47"/> |
| 67 | <text x="710" y="430" font-family="Consolas, 'Courier New', monospace" font-size="10" fill="#5BA3E0" text-anchor="middle">NODE</text> |
| 68 | </g> |
| 69 | </g> |
| 70 | |
| 71 | <g id="leader-kubelet"> |
| 72 | <line x1="580" y1="383" x2="780" y2="383" stroke="#FFB627" stroke-width="0.8"/> |
| 73 | <line x1="780" y1="383" x2="800" y2="383" stroke="#FFB627" stroke-width="0.8"/> |
| 74 | <circle cx="580" cy="383" r="2.5" fill="#FFB627"/> |
| 75 | <rect x="800" y="335" width="380" height="90" fill="#1A3A5C" fill-opacity="0.4" stroke="#FFB627" stroke-width="1.2"/> |
| 76 | <text x="816" y="358" font-family="Consolas, 'Courier New', monospace" font-size="13" fill="#FFB627" font-weight="bold">kubelet</text> |
| 77 | <text x="892" y="358" font-family="Arial, 'Microsoft YaHei', sans-serif" font-size="11" fill="#A0B8D0">— node agent</text> |
| 78 | <text x="816" y="380" font-family="Arial, 'Microsoft YaHei', sans-serif" font-size="12" fill="#F0F4F8">• Watches apiserver for Pods scheduled here</text> |
| 79 | <text x="816" y="397" font-family="Arial, 'Microsoft YaHei', sans-serif" font-size="12" fill="#F0F4F8">• Reconciles PodSpecs → instructs runtime</text> |
| 80 | <text x="816" y="414" font-family="Arial, 'Microsoft YaHei', sans-serif" font-size="12" fill="#F0F4F8">• Liveness / readiness / startup probes</text> |
| 81 | </g> |
| 82 | |
| 83 | <g id="leader-proxy"> |
| 84 | <line x1="580" y1="555" x2="780" y2="540" stroke="#5BA3E0" stroke-width="0.8"/> |
| 85 | <line x1="780" y1="540" x2="800" y2="540" stroke="#5BA3E0" stroke-width="0.8"/> |
| 86 | <circle cx="580" cy="555" r="2.5" fill="#5BA3E0"/> |
| 87 | <rect x="800" y="450" width="380" height="80" fill="#1A3A5C" fill-opacity="0.4" stroke="#5BA3E0" stroke-width="1.2"/> |
| 88 | <text x="816" y="473" font-family="Consolas, 'Courier New', monospace" font-size="13" fill="#5BA3E0" font-weight="bold">kube-proxy</text> |
| 89 | <text x="897" y="473" font-family="Arial, 'Microsoft YaHei', sans-serif" font-size="11" fill="#A0B8D0">— Service rules</text> |
| 90 | <text x="816" y="495" font-family="Arial, 'Microsoft YaHei', sans-serif" font-size="12" fill="#F0F4F8">• Translates virtual IP → backing Pod IPs</text> |
| 91 | <text x="816" y="512" font-family="Arial, 'Microsoft YaHei', sans-serif" font-size="11" fill="#A0B8D0"><tspan font-family="Consolas, 'Courier New', monospace">iptables</tspan> · <tspan font-family="Consolas, 'Courier New', monospace">IPVS</tspan> · <tspan font-family="Consolas, 'Courier New', monospace">nftables</tspan> · optional with eBPF CNI</text> |
| 92 | </g> |
| 93 | |
| 94 | <g id="leader-runtime"> |
| 95 | <line x1="580" y1="625" x2="780" y2="620" stroke="#3E7AB8" stroke-width="0.8"/> |
| 96 | <line x1="780" y1="620" x2="800" y2="620" stroke="#3E7AB8" stroke-width="0.8"/> |
| 97 | <circle cx="580" cy="625" r="2.5" fill="#3E7AB8"/> |
| 98 | <rect x="800" y="555" width="380" height="80" fill="#1A3A5C" fill-opacity="0.4" stroke="#3E7AB8" stroke-width="1.2"/> |
| 99 | <text x="816" y="578" font-family="Consolas, 'Courier New', monospace" font-size="13" fill="#3E7AB8" font-weight="bold">container runtime</text> |
| 100 | <text x="942" y="578" font-family="Arial, 'Microsoft YaHei', sans-serif" font-size="11" fill="#A0B8D0">— CRI implementer</text> |
| 101 | <text x="816" y="600" font-family="Arial, 'Microsoft YaHei', sans-serif" font-size="12" fill="#F0F4F8">• Pulls images, starts containers, manages lifecycle</text> |
| 102 | <text x="816" y="617" font-family="Arial, 'Microsoft YaHei', sans-serif" font-size="11" fill="#A0B8D0"><tspan font-family="Consolas, 'Courier New', monospace">containerd</tspan> · <tspan font-family="Consolas, 'Courier New', monospace">CRI-O</tspan> · Docker removed since v1.24</text> |
| 103 | </g> |
| 104 | |
| 105 | <g id="footer"> |
| 106 | <line x1="60" y1="680" x2="1220" y2="680" stroke="#2D4A6B" stroke-width="0.5"/> |
| 107 | <text x="60" y="700" font-family="Consolas, 'Courier New', monospace" font-size="11" fill="#6B85A3">K8S-ARCH-2026 · DRAWING 04 OF 10 · WORKER NODE</text> |
| 108 | <text x="1220" y="700" font-family="Consolas, 'Courier New', monospace" font-size="11" fill="#6B85A3" text-anchor="end">SHEET 04 OF 10</text> |
| 109 | </g> |
| 110 | </svg> |
| 111 |