返回 ppt-master
08_ha_topology.svg
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">HA Topology: Stacked or External</text>
21 <text x="1220" y="42" font-family="Consolas, 'Courier New', monospace" font-size="11" fill="#A0B8D0" text-anchor="end">P08 / 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">PRODUCTION CLUSTERS NEED ≥3 CONTROL-PLANE HOSTS · ODD-NUMBERED ETCD MEMBERS</text>
24 </g>
25
26 <g id="stacked-topology">
27 <rect x="80" y="110" width="560" height="500" fill="#1A3A5C" fill-opacity="0.3" stroke="#5BA3E0" stroke-width="0.8" stroke-dasharray="4 4"/>
28 <text x="100" y="135" font-family="Consolas, 'Courier New', monospace" font-size="14" fill="#5BA3E0" font-weight="bold">[ TOPOLOGY A ] STACKED</text>
29 <text x="100" y="155" font-family="Arial, 'Microsoft YaHei', sans-serif" font-size="12" fill="#A0B8D0">etcd co-located with control-plane host</text>
30 <line x1="80" y1="170" x2="640" y2="170" stroke="#5BA3E0" stroke-width="0.5"/>
31
32 <g id="stacked-host-1">
33 <polygon points="200,210 280,250 280,330 200,370 120,330 120,250" fill="#0E2A47" stroke="#5BA3E0" stroke-width="1.3"/>
34 <line x1="200" y1="210" x2="200" y2="290" stroke="#5BA3E0" stroke-width="0.8"/>
35 <line x1="200" y1="290" x2="120" y2="250" stroke="#5BA3E0" stroke-width="0.8"/>
36 <line x1="200" y1="290" x2="280" y2="250" stroke="#5BA3E0" stroke-width="0.8"/>
37 <rect x="155" y="270" width="90" height="14" fill="none" stroke="#FFB627" stroke-width="0.8"/>
38 <text x="200" y="281" font-family="Consolas, 'Courier New', monospace" font-size="9" fill="#FFB627" text-anchor="middle">apiserver</text>
39 <rect x="155" y="288" width="90" height="14" fill="none" stroke="#FFB627" stroke-width="0.8"/>
40 <text x="200" y="299" font-family="Consolas, 'Courier New', monospace" font-size="9" fill="#FFB627" text-anchor="middle">etcd</text>
41 <text x="200" y="395" font-family="Consolas, 'Courier New', monospace" font-size="11" fill="#A0B8D0" text-anchor="middle">host-01</text>
42 </g>
43
44 <g id="stacked-host-2">
45 <polygon points="360,210 440,250 440,330 360,370 280,330 280,250" fill="#0E2A47" stroke="#5BA3E0" stroke-width="1.3"/>
46 <line x1="360" y1="210" x2="360" y2="290" stroke="#5BA3E0" stroke-width="0.8"/>
47 <line x1="360" y1="290" x2="280" y2="250" stroke="#5BA3E0" stroke-width="0.8"/>
48 <line x1="360" y1="290" x2="440" y2="250" stroke="#5BA3E0" stroke-width="0.8"/>
49 <rect x="315" y="270" width="90" height="14" fill="none" stroke="#FFB627" stroke-width="0.8"/>
50 <text x="360" y="281" font-family="Consolas, 'Courier New', monospace" font-size="9" fill="#FFB627" text-anchor="middle">apiserver</text>
51 <rect x="315" y="288" width="90" height="14" fill="none" stroke="#FFB627" stroke-width="0.8"/>
52 <text x="360" y="299" font-family="Consolas, 'Courier New', monospace" font-size="9" fill="#FFB627" text-anchor="middle">etcd</text>
53 <text x="360" y="395" font-family="Consolas, 'Courier New', monospace" font-size="11" fill="#A0B8D0" text-anchor="middle">host-02</text>
54 </g>
55
56 <g id="stacked-host-3">
57 <polygon points="520,210 600,250 600,330 520,370 440,330 440,250" fill="#0E2A47" stroke="#5BA3E0" stroke-width="1.3"/>
58 <line x1="520" y1="210" x2="520" y2="290" stroke="#5BA3E0" stroke-width="0.8"/>
59 <line x1="520" y1="290" x2="440" y2="250" stroke="#5BA3E0" stroke-width="0.8"/>
60 <line x1="520" y1="290" x2="600" y2="250" stroke="#5BA3E0" stroke-width="0.8"/>
61 <rect x="475" y="270" width="90" height="14" fill="none" stroke="#FFB627" stroke-width="0.8"/>
62 <text x="520" y="281" font-family="Consolas, 'Courier New', monospace" font-size="9" fill="#FFB627" text-anchor="middle">apiserver</text>
63 <rect x="475" y="288" width="90" height="14" fill="none" stroke="#FFB627" stroke-width="0.8"/>
64 <text x="520" y="299" font-family="Consolas, 'Courier New', monospace" font-size="9" fill="#FFB627" text-anchor="middle">etcd</text>
65 <text x="520" y="395" font-family="Consolas, 'Courier New', monospace" font-size="11" fill="#A0B8D0" text-anchor="middle">host-03</text>
66 </g>
67
68 <path d="M 200,330 Q 360,355 360,330" fill="none" stroke="#FFB627" stroke-width="0.8" stroke-dasharray="2 2"/>
69 <path d="M 360,330 Q 520,355 520,330" fill="none" stroke="#FFB627" stroke-width="0.8" stroke-dasharray="2 2"/>
70
71 <g id="stacked-tradeoffs">
72 <line x1="100" y1="430" x2="620" y2="430" stroke="#5BA3E0" stroke-width="0.5"/>
73 <text x="100" y="455" font-family="Consolas, 'Courier New', monospace" font-size="11" fill="#7FD99F">▲ TRADE-OFFS</text>
74 <text x="100" y="478" font-family="Arial, 'Microsoft YaHei', sans-serif" font-size="12" fill="#F0F4F8">+ Fewer hosts to maintain</text>
75 <text x="100" y="497" font-family="Arial, 'Microsoft YaHei', sans-serif" font-size="12" fill="#F0F4F8">+ Lower infrastructure cost</text>
76 <text x="100" y="516" font-family="Arial, 'Microsoft YaHei', sans-serif" font-size="12" fill="#F0F4F8">+ Simpler kubeadm setup</text>
77 <text x="100" y="544" font-family="Arial, 'Microsoft YaHei', sans-serif" font-size="12" fill="#FF6B6B">− Host loss kills 1 apiserver AND 1 etcd</text>
78 <text x="100" y="563" font-family="Arial, 'Microsoft YaHei', sans-serif" font-size="12" fill="#FF6B6B">− Less failure isolation</text>
79 <text x="100" y="582" font-family="Arial, 'Microsoft YaHei', sans-serif" font-size="12" fill="#FF6B6B">− etcd I/O shares disk with apiserver</text>
80 </g>
81 </g>
82
83 <g id="external-topology">
84 <rect x="680" y="110" width="560" height="500" fill="#1A3A5C" fill-opacity="0.3" stroke="#FFB627" stroke-width="0.8" stroke-dasharray="4 4"/>
85 <text x="700" y="135" font-family="Consolas, 'Courier New', monospace" font-size="14" fill="#FFB627" font-weight="bold">[ TOPOLOGY B ] EXTERNAL ETCD ★</text>
86 <text x="700" y="155" font-family="Arial, 'Microsoft YaHei', sans-serif" font-size="12" fill="#A0B8D0">etcd cluster on dedicated hosts</text>
87 <line x1="680" y1="170" x2="1240" y2="170" stroke="#FFB627" stroke-width="0.5"/>
88
89 <text x="700" y="195" font-family="Consolas, 'Courier New', monospace" font-size="10" fill="#5BA3E0">CONTROL PLANE TIER</text>
90
91 <g id="ext-cp-1">
92 <polygon points="780,225 850,260 850,330 780,365 710,330 710,260" fill="#0E2A47" stroke="#5BA3E0" stroke-width="1.3"/>
93 <rect x="740" y="290" width="80" height="14" fill="none" stroke="#5BA3E0" stroke-width="0.8"/>
94 <text x="780" y="301" font-family="Consolas, 'Courier New', monospace" font-size="9" fill="#5BA3E0" text-anchor="middle">apiserver</text>
95 <text x="780" y="380" font-family="Consolas, 'Courier New', monospace" font-size="10" fill="#A0B8D0" text-anchor="middle">cp-01</text>
96 </g>
97 <g id="ext-cp-2">
98 <polygon points="940,225 1010,260 1010,330 940,365 870,330 870,260" fill="#0E2A47" stroke="#5BA3E0" stroke-width="1.3"/>
99 <rect x="900" y="290" width="80" height="14" fill="none" stroke="#5BA3E0" stroke-width="0.8"/>
100 <text x="940" y="301" font-family="Consolas, 'Courier New', monospace" font-size="9" fill="#5BA3E0" text-anchor="middle">apiserver</text>
101 <text x="940" y="380" font-family="Consolas, 'Courier New', monospace" font-size="10" fill="#A0B8D0" text-anchor="middle">cp-02</text>
102 </g>
103 <g id="ext-cp-3">
104 <polygon points="1100,225 1170,260 1170,330 1100,365 1030,330 1030,260" fill="#0E2A47" stroke="#5BA3E0" stroke-width="1.3"/>
105 <rect x="1060" y="290" width="80" height="14" fill="none" stroke="#5BA3E0" stroke-width="0.8"/>
106 <text x="1100" y="301" font-family="Consolas, 'Courier New', monospace" font-size="9" fill="#5BA3E0" text-anchor="middle">apiserver</text>
107 <text x="1100" y="380" font-family="Consolas, 'Courier New', monospace" font-size="10" fill="#A0B8D0" text-anchor="middle">cp-03</text>
108 </g>
109
110 <line x1="780" y1="365" x2="780" y2="415" stroke="#FFB627" stroke-width="1" stroke-dasharray="3 3"/>
111 <line x1="940" y1="365" x2="940" y2="415" stroke="#FFB627" stroke-width="1" stroke-dasharray="3 3"/>
112 <line x1="1100" y1="365" x2="1100" y2="415" stroke="#FFB627" stroke-width="1" stroke-dasharray="3 3"/>
113
114 <text x="700" y="402" font-family="Consolas, 'Courier New', monospace" font-size="10" fill="#FFB627">ETCD TIER (dedicated)</text>
115
116 <rect x="710" y="415" width="100" height="50" fill="#0E2A47" stroke="#FFB627" stroke-width="1.5"/>
117 <text x="760" y="438" font-family="Consolas, 'Courier New', monospace" font-size="11" fill="#FFB627" text-anchor="middle" font-weight="bold">etcd</text>
118 <text x="760" y="455" font-family="Consolas, 'Courier New', monospace" font-size="9" fill="#A0B8D0" text-anchor="middle">etcd-01</text>
119
120 <rect x="890" y="415" width="100" height="50" fill="#0E2A47" stroke="#FFB627" stroke-width="1.5"/>
121 <text x="940" y="438" font-family="Consolas, 'Courier New', monospace" font-size="11" fill="#FFB627" text-anchor="middle" font-weight="bold">etcd</text>
122 <text x="940" y="455" font-family="Consolas, 'Courier New', monospace" font-size="9" fill="#A0B8D0" text-anchor="middle">etcd-02</text>
123
124 <rect x="1050" y="415" width="100" height="50" fill="#0E2A47" stroke="#FFB627" stroke-width="1.5"/>
125 <text x="1100" y="438" font-family="Consolas, 'Courier New', monospace" font-size="11" fill="#FFB627" text-anchor="middle" font-weight="bold">etcd</text>
126 <text x="1100" y="455" font-family="Consolas, 'Courier New', monospace" font-size="9" fill="#A0B8D0" text-anchor="middle">etcd-03</text>
127
128 <path d="M 760,440 Q 850,475 940,440" fill="none" stroke="#FFB627" stroke-width="0.7" stroke-dasharray="2 2"/>
129 <path d="M 940,440 Q 1020,475 1100,440" fill="none" stroke="#FFB627" stroke-width="0.7" stroke-dasharray="2 2"/>
130
131 <g id="ext-tradeoffs">
132 <line x1="700" y1="490" x2="1220" y2="490" stroke="#FFB627" stroke-width="0.5"/>
133 <text x="700" y="515" font-family="Consolas, 'Courier New', monospace" font-size="11" fill="#7FD99F">▲ TRADE-OFFS</text>
134 <text x="700" y="538" font-family="Arial, 'Microsoft YaHei', sans-serif" font-size="12" fill="#F0F4F8">+ Failure isolation across tiers</text>
135 <text x="700" y="557" font-family="Arial, 'Microsoft YaHei', sans-serif" font-size="12" fill="#F0F4F8">+ etcd survives apiserver disk pressure</text>
136 <text x="700" y="576" font-family="Arial, 'Microsoft YaHei', sans-serif" font-size="12" fill="#F0F4F8">+ Independent scaling / upgrade paths</text>
137 <text x="700" y="595" font-family="Arial, 'Microsoft YaHei', sans-serif" font-size="12" fill="#FF6B6B">− Double the hosts to operate</text>
138 </g>
139 </g>
140
141 <g id="ha-rules">
142 <rect x="80" y="625" width="1160" height="38" fill="#1A3A5C" fill-opacity="0.6" stroke="#FFB627" stroke-width="0.8"/>
143 <text x="100" y="649" font-family="Arial, 'Microsoft YaHei', sans-serif" font-size="13" fill="#F0F4F8">Universal HA rules — <tspan font-family="Consolas, 'Courier New', monospace" fill="#FFB627" font-weight="bold">≥3 control-plane hosts</tspan> · <tspan font-family="Consolas, 'Courier New', monospace" fill="#FFB627" font-weight="bold">odd-numbered etcd members (3 or 5)</tspan> · scheduler &amp; controller-manager are <tspan font-family="Consolas, 'Courier New', monospace" fill="#FFB627" font-weight="bold">leader-elected</tspan> · spread across availability zones</text>
144 </g>
145
146 <g id="footer">
147 <line x1="60" y1="680" x2="1220" y2="680" stroke="#2D4A6B" stroke-width="0.5"/>
148 <text x="60" y="700" font-family="Consolas, 'Courier New', monospace" font-size="11" fill="#6B85A3">K8S-ARCH-2026 · DRAWING 08 OF 10 · HA TOPOLOGY</text>
149 <text x="1220" y="700" font-family="Consolas, 'Courier New', monospace" font-size="11" fill="#6B85A3" text-anchor="end">SHEET 08 OF 10</text>
150 </g>
151 </svg>
152
152 lines Plain Text