返回 ppt-master
10_takeaways.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 <radialGradient id="endVignette" cx="50%" cy="50%" r="75%">
13 <stop offset="50%" stop-color="#0E2A47" stop-opacity="0" />
14 <stop offset="100%" stop-color="#000000" stop-opacity="0.5" />
15 </radialGradient>
16 </defs>
17
18 <g id="bg">
19 <rect width="1280" height="720" fill="#0E2A47" />
20 <rect width="1280" height="720" fill="url(#bpGridMinor)" opacity="0.3" />
21 <rect width="1280" height="720" fill="url(#bpGridMajor)" opacity="0.45" />
22 <rect width="1280" height="720" fill="url(#endVignette)" />
23 </g>
24
25 <g id="header">
26 <text x="60" y="42" font-family="Arial, 'Microsoft YaHei', sans-serif" font-size="30" font-weight="bold" fill="#F0F4F8">Three Things to Remember</text>
27 <text x="1220" y="42" font-family="Consolas, 'Courier New', monospace" font-size="11" fill="#A0B8D0" text-anchor="end">P10 / 10</text>
28 <line x1="60" y1="58" x2="1220" y2="58" stroke="#2D4A6B" stroke-width="0.5" />
29 </g>
30
31 <g id="takeaway-1">
32 <text x="120" y="200" font-family="Consolas, 'Courier New', monospace" font-size="13" fill="#FFB627" letter-spacing="3">01 / ONE SPINE</text>
33 <line x1="120" y1="215" x2="160" y2="215" stroke="#FFB627" stroke-width="2" />
34 <text x="120" y="270" font-family="Arial, 'Microsoft YaHei', sans-serif" font-size="36" font-weight="bold" fill="#F0F4F8"><tspan font-family="Consolas, 'Courier New', monospace" fill="#FFB627">kube-apiserver</tspan> mediates</text>
35 <text x="120" y="312" font-family="Arial, 'Microsoft YaHei', sans-serif" font-size="36" font-weight="bold" fill="#F0F4F8">every state change.</text>
36 <text x="120" y="345" font-family="Arial, 'Microsoft YaHei', sans-serif" font-size="16" fill="#A0B8D0"><tspan x="120" dy="0">No component talks to another directly.</tspan><tspan x="120" dy="22">That constraint is what makes the system pluggable.</tspan></text>
37 </g>
38
39 <g id="takeaway-2">
40 <text x="120" y="408" font-family="Consolas, 'Courier New', monospace" font-size="13" fill="#5BA3E0" letter-spacing="3">02 / ONE TRUTH</text>
41 <line x1="120" y1="423" x2="160" y2="423" stroke="#5BA3E0" stroke-width="2" />
42 <text x="120" y="478" font-family="Arial, 'Microsoft YaHei', sans-serif" font-size="36" font-weight="bold" fill="#F0F4F8"><tspan font-family="Consolas, 'Courier New', monospace" fill="#5BA3E0">etcd</tspan> is the only</text>
43 <text x="120" y="520" font-family="Arial, 'Microsoft YaHei', sans-serif" font-size="36" font-weight="bold" fill="#F0F4F8">persistent store.</text>
44 <text x="120" y="553" font-family="Arial, 'Microsoft YaHei', sans-serif" font-size="16" fill="#A0B8D0"><tspan x="120" dy="0">Lose etcd, lose the cluster. Back it up.</tspan><tspan x="120" dy="22">Run an odd number. Raft does the rest.</tspan></text>
45 </g>
46
47 <g id="takeaway-3">
48 <text x="700" y="200" font-family="Consolas, 'Courier New', monospace" font-size="13" fill="#7FD99F" letter-spacing="3">03 / ONE LOOP</text>
49 <line x1="700" y1="215" x2="740" y2="215" stroke="#7FD99F" stroke-width="2" />
50 <text x="700" y="270" font-family="Arial, 'Microsoft YaHei', sans-serif" font-size="36" font-weight="bold" fill="#F0F4F8">Every controller is the</text>
51 <text x="700" y="312" font-family="Arial, 'Microsoft YaHei', sans-serif" font-size="36" font-weight="bold" fill="#F0F4F8">same loop, different scope.</text>
52 <text x="700" y="345" font-family="Arial, 'Microsoft YaHei', sans-serif" font-size="16" fill="#A0B8D0"><tspan x="700" dy="0"><tspan font-family="Consolas, 'Courier New', monospace" fill="#7FD99F">watch → diff → act</tspan>.</tspan><tspan x="700" dy="22">Once you see that, you can read the source of any controller.</tspan></text>
53 </g>
54
55 <g id="reconcile-diagram">
56 <text x="700" y="408" font-family="Consolas, 'Courier New', monospace" font-size="11" fill="#6B85A3" letter-spacing="2">THE LOOP, DRAWN</text>
57 <line x1="700" y1="420" x2="1180" y2="420" stroke="#2D4A6B" stroke-width="0.5" />
58
59 <g id="loop-watch">
60 <circle cx="780" cy="500" r="40" fill="none" stroke="#5BA3E0" stroke-width="1.5" />
61 <text x="780" y="495" font-family="Consolas, 'Courier New', monospace" font-size="11" fill="#5BA3E0" text-anchor="middle" font-weight="bold">watch</text>
62 <text x="780" y="510" font-family="Arial, 'Microsoft YaHei', sans-serif" font-size="9" fill="#A0B8D0" text-anchor="middle">desired</text>
63 </g>
64 <g id="loop-diff">
65 <circle cx="940" cy="500" r="40" fill="none" stroke="#FFB627" stroke-width="1.5" />
66 <text x="940" y="495" font-family="Consolas, 'Courier New', monospace" font-size="11" fill="#FFB627" text-anchor="middle" font-weight="bold">diff</text>
67 <text x="940" y="510" font-family="Arial, 'Microsoft YaHei', sans-serif" font-size="9" fill="#A0B8D0" text-anchor="middle">vs actual</text>
68 </g>
69 <g id="loop-act">
70 <circle cx="1100" cy="500" r="40" fill="none" stroke="#7FD99F" stroke-width="1.5" />
71 <text x="1100" y="495" font-family="Consolas, 'Courier New', monospace" font-size="11" fill="#7FD99F" text-anchor="middle" font-weight="bold">act</text>
72 <text x="1100" y="510" font-family="Arial, 'Microsoft YaHei', sans-serif" font-size="9" fill="#A0B8D0" text-anchor="middle">converge</text>
73 </g>
74
75 <line x1="820" y1="500" x2="900" y2="500" stroke="#5BA3E0" stroke-width="1" />
76 <polygon points="900,500 893,496 893,504" fill="#5BA3E0" />
77 <line x1="980" y1="500" x2="1060" y2="500" stroke="#FFB627" stroke-width="1" />
78 <polygon points="1060,500 1053,496 1053,504" fill="#FFB627" />
79
80 <path d="M 1100,540 Q 1100,610 940,610 Q 780,610 780,540" fill="none" stroke="#7FD99F" stroke-width="1" stroke-dasharray="3 4" />
81 <polygon points="780,540 776,548 784,548" fill="#7FD99F" />
82 <text x="940" y="630" font-family="Consolas, 'Courier New', monospace" font-size="10" fill="#7FD99F" text-anchor="middle">repeat forever</text>
83 </g>
84
85 <g id="divider">
86 <line x1="660" y1="160" x2="660" y2="595" stroke="#2D4A6B" stroke-width="0.5" />
87 </g>
88
89 <g id="closing-mark">
90 <line x1="120" y1="620" x2="180" y2="620" stroke="#FFB627" stroke-width="1.5" />
91 <text x="120" y="643" font-family="Consolas, 'Courier New', monospace" font-size="11" fill="#FFB627" letter-spacing="2">— END OF DRAWING SET —</text>
92 </g>
93
94 <g id="footer">
95 <line x1="60" y1="680" x2="1220" y2="680" stroke="#2D4A6B" stroke-width="0.5" />
96 <text x="60" y="700" font-family="Consolas, 'Courier New', monospace" font-size="11" fill="#6B85A3">K8S-ARCH-2026 · DRAWING 10 OF 10 · TAKEAWAYS</text>
97 <text x="1220" y="700" font-family="Consolas, 'Courier New', monospace" font-size="11" fill="#6B85A3" text-anchor="end">REV 1.0 · 2026-05-21</text>
98 </g>
99 </svg>
99 lines Plain Text