返回 ppt-master
02_two_planes.svg
1 <?xml version='1.0' encoding='UTF-8'?>
2 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 720" width="1280" height="720">
3 <defs>
4 <pattern id="bpGridMajor" x="0" y="0" width="40" height="40" patternUnits="userSpaceOnUse" data-pptx-pattern="lgGrid">
5 <rect width="40" height="40" fill="#0E2A47" />
6 <path d="M 40 0 L 0 0 0 40" fill="none" stroke="#2D4A6B" stroke-width="0.6" />
7 </pattern>
8 <pattern id="bpGridMinor" x="0" y="0" width="8" height="8" patternUnits="userSpaceOnUse" data-pptx-pattern="smGrid">
9 <rect width="8" height="8" fill="#0E2A47" />
10 <path d="M 8 0 L 0 0 0 8" fill="none" stroke="#1A3A5C" stroke-width="0.3" />
11 </pattern>
12 </defs>
13
14 <g id="bg">
15 <rect width="1280" height="720" fill="#0E2A47" />
16 <rect width="1280" height="720" fill="url(#bpGridMinor)" opacity="0.4" />
17 <rect width="1280" height="720" fill="url(#bpGridMajor)" opacity="0.6" />
18 </g>
19
20 <g id="header">
21 <text x="60" y="42" font-family="Arial, 'Microsoft YaHei', sans-serif" font-size="30" font-weight="bold" fill="#F0F4F8">Two Planes, One Spine</text>
22 <text x="1220" y="42" font-family="Consolas, 'Courier New', monospace" font-size="11" fill="#A0B8D0" text-anchor="end">P02 / 10</text>
23 <line x1="60" y1="58" x2="1220" y2="58" stroke="#2D4A6B" stroke-width="0.5" />
24 <text x="60" y="78" font-family="Arial, 'Microsoft YaHei', sans-serif" font-size="13" fill="#6B85A3">EVERY DECISION GOES THROUGH <tspan fill="#FFB627" font-family="Consolas, 'Courier New', monospace">kube-apiserver</tspan></text>
25 </g>
26
27 <g id="cp-zone-decor">
28 <rect x="80" y="105" width="1120" height="240" fill="#1A3A5C" fill-opacity="0.35" stroke="#3E7AB8" stroke-width="0.6" stroke-dasharray="4 4" />
29 <text x="100" y="130" font-family="Consolas, 'Courier New', monospace" font-size="12" fill="#FFB627" letter-spacing="2">[ CONTROL PLANE ]</text>
30 <text x="100" y="148" font-family="Arial, 'Microsoft YaHei', sans-serif" font-size="13" fill="#A0B8D0">Global decision-making · desired-state holder</text>
31 </g>
32
33 <g id="cp-apiserver">
34 <rect x="540" y="180" width="200" height="120" fill="#0E2A47" stroke="#FFB627" stroke-width="2" />
35 <rect x="540" y="180" width="200" height="22" fill="#FFB627" />
36 <text x="640" y="196" font-family="Consolas, 'Courier New', monospace" font-size="11" fill="#0E2A47" text-anchor="middle" font-weight="bold">▲ HUB</text>
37 <text x="640" y="234" font-family="Consolas, 'Courier New', monospace" font-size="15" fill="#FFB627" text-anchor="middle" font-weight="bold">kube-apiserver</text>
38 <text x="640" y="258" font-family="Arial, 'Microsoft YaHei', sans-serif" font-size="11" fill="#F0F4F8" text-anchor="middle">REST + admission</text>
39 <text x="640" y="276" font-family="Arial, 'Microsoft YaHei', sans-serif" font-size="11" fill="#F0F4F8" text-anchor="middle">+ validation gateway</text>
40 <text x="640" y="294" font-family="Consolas, 'Courier New', monospace" font-size="9" fill="#A0B8D0" text-anchor="middle">↕ talks to etcd only</text>
41 </g>
42
43 <g id="cp-etcd">
44 <rect x="120" y="195" width="160" height="90" fill="#0E2A47" stroke="#5BA3E0" stroke-width="1.5" />
45 <text x="200" y="220" font-family="Consolas, 'Courier New', monospace" font-size="13" fill="#5BA3E0" text-anchor="middle" font-weight="bold">etcd</text>
46 <text x="200" y="244" font-family="Arial, 'Microsoft YaHei', sans-serif" font-size="11" fill="#F0F4F8" text-anchor="middle">key-value store</text>
47 <text x="200" y="260" font-family="Arial, 'Microsoft YaHei', sans-serif" font-size="11" fill="#A0B8D0" text-anchor="middle">Raft · quorum</text>
48 <text x="200" y="276" font-family="Consolas, 'Courier New', monospace" font-size="9" fill="#6B85A3" text-anchor="middle">3 or 5 members</text>
49 </g>
50
51 <g id="cp-sched">
52 <rect x="320" y="195" width="180" height="90" fill="#0E2A47" stroke="#5BA3E0" stroke-width="1.5" />
53 <text x="410" y="220" font-family="Consolas, 'Courier New', monospace" font-size="13" fill="#5BA3E0" text-anchor="middle" font-weight="bold">kube-scheduler</text>
54 <text x="410" y="244" font-family="Arial, 'Microsoft YaHei', sans-serif" font-size="11" fill="#F0F4F8" text-anchor="middle">filter → score → bind</text>
55 <text x="410" y="260" font-family="Arial, 'Microsoft YaHei', sans-serif" font-size="11" fill="#A0B8D0" text-anchor="middle">picks node per Pod</text>
56 </g>
57
58 <g id="cp-ctrl">
59 <rect x="780" y="195" width="200" height="90" fill="#0E2A47" stroke="#5BA3E0" stroke-width="1.5" />
60 <text x="880" y="220" font-family="Consolas, 'Courier New', monospace" font-size="12" fill="#5BA3E0" text-anchor="middle" font-weight="bold">controller-manager</text>
61 <text x="880" y="244" font-family="Arial, 'Microsoft YaHei', sans-serif" font-size="11" fill="#F0F4F8" text-anchor="middle">watch · diff · act</text>
62 <text x="880" y="260" font-family="Arial, 'Microsoft YaHei', sans-serif" font-size="11" fill="#A0B8D0" text-anchor="middle">N reconcile loops</text>
63 </g>
64
65 <g id="cp-cloud">
66 <rect x="1020" y="195" width="160" height="90" fill="#0E2A47" stroke="#3E7AB8" stroke-width="1.5" stroke-dasharray="4 3" />
67 <text x="1100" y="220" font-family="Consolas, 'Courier New', monospace" font-size="12" fill="#3E7AB8" text-anchor="middle" font-weight="bold">cloud-ctrl-mgr</text>
68 <text x="1100" y="244" font-family="Arial, 'Microsoft YaHei', sans-serif" font-size="11" fill="#A0B8D0" text-anchor="middle">cloud only</text>
69 <text x="1100" y="260" font-family="Arial, 'Microsoft YaHei', sans-serif" font-size="11" fill="#A0B8D0" text-anchor="middle">LB · routes · nodes</text>
70 <text x="1100" y="277" font-family="Consolas, 'Courier New', monospace" font-size="9" fill="#6B85A3" text-anchor="middle">optional</text>
71 </g>
72
73 <g id="cp-zone-decor-arrows">
74 <path d="M 260,285 Q 260,318 420,318 Q 580,318 580,290" fill="none" stroke="#FFB627" stroke-width="1.2"/>
75 <polygon points="580,290 575,300 585,300" fill="#FFB627"/>
76 <line x1="740" y1="240" x2="780" y2="240" stroke="#FFB627" stroke-width="1.2" />
77 <line x1="980" y1="240" x2="1020" y2="240" stroke="#3E7AB8" stroke-width="1" stroke-dasharray="3 3" />
78 </g>
79
80 <g id="spine">
81 <line x1="640" y1="345" x2="640" y2="415" stroke="#FFB627" stroke-width="2" />
82 <polygon points="640,415 634,405 646,405" fill="#FFB627" />
83 <polygon points="640,345 634,355 646,355" fill="#FFB627" />
84 <rect x="555" y="368" width="170" height="22" fill="#0E2A47" />
85 <text x="640" y="384" font-family="Consolas, 'Courier New', monospace" font-size="12" fill="#FFB627" text-anchor="middle">API-MEDIATED</text>
86 </g>
87
88 <g id="dp-zone-decor">
89 <rect x="80" y="415" width="1120" height="220" fill="#1A3A5C" fill-opacity="0.35" stroke="#3E7AB8" stroke-width="0.6" stroke-dasharray="4 4" />
90 <text x="100" y="440" font-family="Consolas, 'Courier New', monospace" font-size="12" fill="#5BA3E0" letter-spacing="2">[ DATA PLANE ]</text>
91 <text x="100" y="458" font-family="Arial, 'Microsoft YaHei', sans-serif" font-size="13" fill="#A0B8D0">Pod execution · workload runtime</text>
92 <line x1="640" y1="415" x2="640" y2="445" stroke="#5BA3E0" stroke-width="1" stroke-dasharray="3 3" opacity="0.5" />
93 <line x1="270" y1="445" x2="640" y2="445" stroke="#5BA3E0" stroke-width="1" stroke-dasharray="3 3" opacity="0.5" />
94 <line x1="640" y1="445" x2="1010" y2="445" stroke="#5BA3E0" stroke-width="1" stroke-dasharray="3 3" opacity="0.5" />
95 <line x1="270" y1="445" x2="270" y2="490" stroke="#5BA3E0" stroke-width="1" stroke-dasharray="3 3" opacity="0.5" />
96 <line x1="640" y1="445" x2="640" y2="490" stroke="#5BA3E0" stroke-width="1" stroke-dasharray="3 3" opacity="0.5" />
97 <line x1="1010" y1="445" x2="1010" y2="490" stroke="#5BA3E0" stroke-width="1" stroke-dasharray="3 3" opacity="0.5" />
98 </g>
99
100 <g id="dp-node-1">
101 <polygon points="270,490 360,535 360,605 270,650 180,605 180,535" fill="#0E2A47" stroke="#5BA3E0" stroke-width="1.5" />
102 <line x1="270" y1="490" x2="270" y2="570" stroke="#5BA3E0" stroke-width="1" />
103 <line x1="270" y1="570" x2="180" y2="535" stroke="#5BA3E0" stroke-width="1" />
104 <line x1="270" y1="570" x2="360" y2="535" stroke="#5BA3E0" stroke-width="1" />
105 <rect x="230" y="595" width="22" height="14" fill="none" stroke="#7FD99F" stroke-width="1" />
106 <rect x="259" y="595" width="22" height="14" fill="none" stroke="#7FD99F" stroke-width="1" />
107 <rect x="288" y="595" width="22" height="14" fill="none" stroke="#7FD99F" stroke-width="1" />
108 <text x="270" y="675" font-family="Consolas, 'Courier New', monospace" font-size="12" fill="#A0B8D0" text-anchor="middle">worker-node-01</text>
109 </g>
110
111 <g id="dp-node-2">
112 <polygon points="640,490 730,535 730,605 640,650 550,605 550,535" fill="#0E2A47" stroke="#5BA3E0" stroke-width="1.5" />
113 <line x1="640" y1="490" x2="640" y2="570" stroke="#5BA3E0" stroke-width="1" />
114 <line x1="640" y1="570" x2="550" y2="535" stroke="#5BA3E0" stroke-width="1" />
115 <line x1="640" y1="570" x2="730" y2="535" stroke="#5BA3E0" stroke-width="1" />
116 <rect x="600" y="595" width="22" height="14" fill="none" stroke="#7FD99F" stroke-width="1" />
117 <rect x="629" y="595" width="22" height="14" fill="none" stroke="#7FD99F" stroke-width="1" />
118 <rect x="658" y="595" width="22" height="14" fill="none" stroke="#7FD99F" stroke-width="1" />
119 <text x="640" y="675" font-family="Consolas, 'Courier New', monospace" font-size="12" fill="#A0B8D0" text-anchor="middle">worker-node-02</text>
120 </g>
121
122 <g id="dp-node-3">
123 <polygon points="1010,490 1100,535 1100,605 1010,650 920,605 920,535" fill="#0E2A47" stroke="#5BA3E0" stroke-width="1.5" />
124 <line x1="1010" y1="490" x2="1010" y2="570" stroke="#5BA3E0" stroke-width="1" />
125 <line x1="1010" y1="570" x2="920" y2="535" stroke="#5BA3E0" stroke-width="1" />
126 <line x1="1010" y1="570" x2="1100" y2="535" stroke="#5BA3E0" stroke-width="1" />
127 <rect x="970" y="595" width="22" height="14" fill="none" stroke="#7FD99F" stroke-width="1" />
128 <rect x="999" y="595" width="22" height="14" fill="none" stroke="#7FD99F" stroke-width="1" />
129 <text x="1010" y="675" font-family="Consolas, 'Courier New', monospace" font-size="12" fill="#A0B8D0" text-anchor="middle">worker-node-03</text>
130 </g>
131
132 <g id="footer">
133 <line x1="60" y1="680" x2="1220" y2="680" stroke="#2D4A6B" stroke-width="0.5" />
134 <text x="60" y="700" font-family="Consolas, 'Courier New', monospace" font-size="11" fill="#6B85A3">K8S-ARCH-2026 · DRAWING 02 OF 10 · TOPOLOGY OVERVIEW</text>
135 <text x="1220" y="700" font-family="Consolas, 'Courier New', monospace" font-size="11" fill="#6B85A3" text-anchor="end">SHEET 02 OF 10</text>
136 </g>
137 </svg>
137 lines Plain Text