239 lines
24 KiB
Plaintext
239 lines
24 KiB
Plaintext
<mxfile host="app.diagrams.net" modified="2026-05-09T00:00:00.000Z" agent="Mozilla/5.0" version="24.0.0" type="device">
|
|
<diagram name="s16-l4-vs-l7" id="l4-l7">
|
|
<mxGraphModel dx="1600" dy="900" grid="0" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1600" pageHeight="900" math="0" shadow="0">
|
|
<root>
|
|
<mxCell id="0" />
|
|
<mxCell id="1" parent="0" />
|
|
|
|
<mxCell id="title" value="네트워크 기초 — L4 (kube-proxy) vs L7 (Ingress) 경계" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=26;fontStyle=1;fontFamily=Pretendard,Helvetica;" vertex="1" parent="1">
|
|
<mxGeometry x="60" y="36" width="1500" height="40" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="subtitle" value="NodePort/LoadBalancer = 커널 DNAT 1회 (L4) · Ingress = user-space reverse proxy + TCP 2 connection (L7)" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=15;fontFamily=Pretendard,Helvetica;fontColor=#57606A;" vertex="1" parent="1">
|
|
<mxGeometry x="60" y="76" width="1500" height="22" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="grp-l4" value="① L4 경로 — kube-proxy DNAT (NodePort/LoadBalancer Service)" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFF7ED;strokeColor=#FB923C;strokeWidth=1;fontSize=13;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#C2410C;align=left;verticalAlign=top;spacingLeft=10;spacingTop=6;" vertex="1" parent="1">
|
|
<mxGeometry x="40" y="120" width="1520" height="280" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="l4-client" value="" style="sketch=0;outlineConnect=0;fillColor=#232F3E;strokeColor=#232F3E;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;aspect=fixed;shape=mxgraph.aws4.user;" vertex="1" parent="1">
|
|
<mxGeometry x="120" y="220" width="60" height="60" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="l4-client-lbl" value="Client (외부)" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;fontSize=12;fontFamily=Pretendard,Helvetica;fontStyle=1;" vertex="1" parent="1">
|
|
<mxGeometry x="80" y="284" width="140" height="20" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="l4-client-ip" value="src: 203.0.113.5" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;fontSize=10;fontFamily=monospace;fontColor=#57606A;" vertex="1" parent="1">
|
|
<mxGeometry x="80" y="306" width="140" height="18" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="l4-node-bg" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#C2410C;strokeWidth=2;" vertex="1" parent="1">
|
|
<mxGeometry x="430" y="190" width="320" height="180" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="l4-node-title" value="Node (worker · 192.168.1.10)" style="text;html=1;align=center;verticalAlign=top;whiteSpace=wrap;fontSize=12;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#C2410C;spacingTop=10;" vertex="1" parent="1">
|
|
<mxGeometry x="430" y="190" width="320" height="22" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="l4-kp-bg" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FED7AA;strokeColor=#C2410C;strokeWidth=2;dashed=1;" vertex="1" parent="1">
|
|
<mxGeometry x="450" y="225" width="280" height="130" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="l4-kp-title" value="kube-proxy" style="text;html=1;align=center;verticalAlign=top;whiteSpace=wrap;fontSize=13;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#C2410C;spacingTop=8;" vertex="1" parent="1">
|
|
<mxGeometry x="450" y="228" width="280" height="22" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="l4-kp-sub" value="iptables / IPVS (kernel-space)" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;fontSize=10;fontStyle=2;fontFamily=Pretendard,Helvetica;fontColor=#7C2D12;" vertex="1" parent="1">
|
|
<mxGeometry x="450" y="252" width="280" height="20" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="l4-kp-dnat-bg" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#C2410C;strokeWidth=2;" vertex="1" parent="1">
|
|
<mxGeometry x="465" y="284" width="250" height="60" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="l4-kp-dnat-tag" value="DNAT" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#C2410C;strokeColor=#C2410C;fontColor=#FFFFFF;fontSize=11;fontStyle=1;fontFamily=Pretendard,Helvetica;align=center;verticalAlign=middle;" vertex="1" parent="1">
|
|
<mxGeometry x="476" y="294" width="60" height="22" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="l4-kp-dnat-rule" value=":30080 → 10.42.0.5:8080" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=11;fontFamily=monospace;fontColor=#7C2D12;fontStyle=1;" vertex="1" parent="1">
|
|
<mxGeometry x="544" y="294" width="170" height="22" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="l4-kp-snat" value="(externalTrafficPolicy=Cluster → SNAT 추가)" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;fontSize=9;fontStyle=2;fontFamily=Pretendard,Helvetica;fontColor=#7C2D12;" vertex="1" parent="1">
|
|
<mxGeometry x="465" y="318" width="250" height="18" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="l4-pod" value="" style="shape=image;html=1;image=https://raw.githubusercontent.com/kubernetes/community/master/icons/svg/resources/unlabeled/pod.svg;imageAspect=1;" vertex="1" parent="1">
|
|
<mxGeometry x="1060" y="220" width="80" height="80" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="l4-pod-lbl" value="Pod (auth-server)" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;fontSize=12;fontFamily=Pretendard,Helvetica;fontStyle=1;" vertex="1" parent="1">
|
|
<mxGeometry x="1010" y="304" width="180" height="20" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="l4-pod-ip" value="10.42.0.5:8080" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;fontSize=10;fontFamily=monospace;fontColor=#57606A;" vertex="1" parent="1">
|
|
<mxGeometry x="1010" y="326" width="180" height="18" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="l4-banner" value="◀ ━━━━━━━━━ TCP 1 connection (kernel-space, NAT 만 적용 후 그대로 통과) ━━━━━━━━━ ▶" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FED7AA;strokeColor=#C2410C;strokeWidth=2;dashed=0;fontSize=12;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#7C2D12;align=center;verticalAlign=middle;" vertex="1" parent="1">
|
|
<mxGeometry x="195" y="372" width="945" height="22" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="l4-e1" style="endArrow=classic;html=1;strokeColor=#C2410C;strokeWidth=4;fontFamily=Pretendard,Helvetica;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="l4-client" target="l4-node-bg">
|
|
<mxGeometry relative="1" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="l4-pkt1" value="dst : NodeIP : 30080" style="text;html=1;align=center;verticalAlign=middle;fontSize=11;fontFamily=monospace;fontColor=#7C2D12;fillColor=#FFFFFF;fontStyle=1;" vertex="1" parent="1">
|
|
<mxGeometry x="220" y="240" width="200" height="20" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="l4-e2" style="endArrow=classic;html=1;strokeColor=#C2410C;strokeWidth=4;fontFamily=Pretendard,Helvetica;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="l4-node-bg" target="l4-pod">
|
|
<mxGeometry relative="1" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="l4-pkt2" value="dst : PodIP : 8080 (rewritten)" style="text;html=1;align=center;verticalAlign=middle;fontSize=11;fontFamily=monospace;fontColor=#7C2D12;fillColor=#FFFFFF;fontStyle=1;" vertex="1" parent="1">
|
|
<mxGeometry x="810" y="240" width="240" height="20" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="l4-note-bg" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFEDD5;strokeColor=#C2410C;strokeWidth=1;dashed=1;" vertex="1" parent="1">
|
|
<mxGeometry x="1240" y="190" width="290" height="180" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="l4-note-title" value="L4 특성" style="text;html=1;align=center;verticalAlign=top;whiteSpace=wrap;fontSize=12;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#C2410C;spacingTop=8;" vertex="1" parent="1">
|
|
<mxGeometry x="1240" y="190" width="290" height="22" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="l4-n1" value="✗ HTTP 헤더 인지 0 (TCP 4-tuple만)" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=11;fontFamily=Pretendard,Helvetica;fontColor=#7C2D12;spacingLeft=14;" vertex="1" parent="1">
|
|
<mxGeometry x="1240" y="218" width="290" height="22" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="l4-n2" value="✗ Host/Path 라우팅 불가능" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=11;fontFamily=Pretendard,Helvetica;fontColor=#7C2D12;spacingLeft=14;" vertex="1" parent="1">
|
|
<mxGeometry x="1240" y="240" width="290" height="22" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="l4-n3" value="✓ 100% kernel-space → 매우 빠름" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=11;fontFamily=Pretendard,Helvetica;fontColor=#15803D;spacingLeft=14;" vertex="1" parent="1">
|
|
<mxGeometry x="1240" y="262" width="290" height="22" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="l4-n4" value="△ Cluster 정책 → SNAT, 원본 IP 손실" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=11;fontFamily=Pretendard,Helvetica;fontColor=#B45309;spacingLeft=14;" vertex="1" parent="1">
|
|
<mxGeometry x="1240" y="284" width="290" height="22" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="l4-n5" value="✓ Local 정책 → 원본 IP 보존 (불균형 LB)" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=11;fontFamily=Pretendard,Helvetica;fontColor=#15803D;spacingLeft=14;" vertex="1" parent="1">
|
|
<mxGeometry x="1240" y="306" width="290" height="22" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="l4-n6" value="→ TCP 1 connection 만 유지" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=11;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#C2410C;spacingLeft=14;" vertex="1" parent="1">
|
|
<mxGeometry x="1240" y="338" width="290" height="22" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="grp-l7" value="② L7 경로 — Ingress Controller (user-space reverse proxy)" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#EFF6FF;strokeColor=#3B82F6;strokeWidth=2;fontSize=13;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#1E40AF;align=left;verticalAlign=top;spacingLeft=10;spacingTop=6;" vertex="1" parent="1">
|
|
<mxGeometry x="40" y="420" width="1520" height="330" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="l7-client" value="" style="sketch=0;outlineConnect=0;fillColor=#232F3E;strokeColor=#232F3E;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;aspect=fixed;shape=mxgraph.aws4.user;" vertex="1" parent="1">
|
|
<mxGeometry x="120" y="540" width="60" height="60" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="l7-client-lbl" value="Client (외부)" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;fontSize=12;fontFamily=Pretendard,Helvetica;fontStyle=1;" vertex="1" parent="1">
|
|
<mxGeometry x="80" y="604" width="140" height="20" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="l7-client-ip" value="src: 203.0.113.5" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;fontSize=10;fontFamily=monospace;fontColor=#57606A;" vertex="1" parent="1">
|
|
<mxGeometry x="80" y="626" width="140" height="18" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="l7-ic-bg" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#1E40AF;strokeWidth=2;" vertex="1" parent="1">
|
|
<mxGeometry x="400" y="475" width="440" height="240" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="l7-ic-title" value="Traefik Ingress Controller (Pod)" style="text;html=1;align=center;verticalAlign=top;whiteSpace=wrap;fontSize=13;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#1E40AF;spacingTop=10;" vertex="1" parent="1">
|
|
<mxGeometry x="400" y="475" width="440" height="22" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="l7-ic-ip" value="Ingress IP : 10.0.0.100 : 443 · user-space" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;fontSize=11;fontStyle=2;fontFamily=monospace;fontColor=#1E40AF;" vertex="1" parent="1">
|
|
<mxGeometry x="400" y="500" width="440" height="18" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="l7-ic-s1" value="1. TLS 종단 (SNI 기반 인증서 선택)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#DBEAFE;strokeColor=#1E40AF;strokeWidth=1;fontSize=11;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#1E40AF;align=left;verticalAlign=middle;spacingLeft=14;" vertex="1" parent="1">
|
|
<mxGeometry x="420" y="528" width="400" height="34" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="l7-ic-s2" value="2. HTTP 파싱 (Host · Path · Header 인지)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#DBEAFE;strokeColor=#1E40AF;strokeWidth=1;fontSize=11;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#1E40AF;align=left;verticalAlign=middle;spacingLeft=14;" vertex="1" parent="1">
|
|
<mxGeometry x="420" y="566" width="400" height="34" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="l7-ic-s3" value="3. Router → Middleware (auth · rate-limit · headers)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#DBEAFE;strokeColor=#1E40AF;strokeWidth=1;fontSize=11;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#1E40AF;align=left;verticalAlign=middle;spacingLeft=14;" vertex="1" parent="1">
|
|
<mxGeometry x="420" y="604" width="400" height="34" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="l7-ic-s4" value="4. 새 TCP 연결 생성 → backend Pod 로 reverse proxy" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#DBEAFE;strokeColor=#1E40AF;strokeWidth=1;fontSize=11;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#1E40AF;align=left;verticalAlign=middle;spacingLeft=14;" vertex="1" parent="1">
|
|
<mxGeometry x="420" y="642" width="400" height="34" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="l7-ic-tag" value="↓ TCP1 종단 → HTTP 처리 → TCP2 신규 생성 ↓" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;fontSize=10;fontStyle=2;fontFamily=Pretendard,Helvetica;fontColor=#1E40AF;" vertex="1" parent="1">
|
|
<mxGeometry x="400" y="685" width="440" height="20" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="l7-pod" value="" style="shape=image;html=1;image=https://raw.githubusercontent.com/kubernetes/community/master/icons/svg/resources/unlabeled/pod.svg;imageAspect=1;" vertex="1" parent="1">
|
|
<mxGeometry x="1060" y="540" width="80" height="80" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="l7-pod-lbl" value="Pod (auth-server)" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;fontSize=12;fontFamily=Pretendard,Helvetica;fontStyle=1;" vertex="1" parent="1">
|
|
<mxGeometry x="1010" y="624" width="180" height="20" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="l7-pod-ip" value="10.42.0.5:8080" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;fontSize=10;fontFamily=monospace;fontColor=#57606A;" vertex="1" parent="1">
|
|
<mxGeometry x="1010" y="646" width="180" height="18" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="l7-e1" style="endArrow=classic;html=1;strokeColor=#1E40AF;strokeWidth=4;fontFamily=Pretendard,Helvetica;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="l7-client" target="l7-ic-bg">
|
|
<mxGeometry relative="1" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="l7-num1" value="B1" style="ellipse;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#1E40AF;fontColor=#1E40AF;fontSize=11;fontStyle=1;fontFamily=Pretendard,Helvetica;strokeWidth=2;" vertex="1" parent="1">
|
|
<mxGeometry x="275" y="558" width="30" height="24" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="l7-pkt1-tag" value="◀ ━━━ TCP 1 connection ━━━ ▶" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#1E40AF;strokeColor=#1E40AF;fontColor=#FFFFFF;fontSize=12;fontStyle=1;fontFamily=Pretendard,Helvetica;align=center;verticalAlign=middle;" vertex="1" parent="1">
|
|
<mxGeometry x="180" y="525" width="240" height="26" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="l7-pkt1" value="src=Client, dst=IngressIP:443 (TLS)" style="text;html=1;align=center;verticalAlign=middle;fontSize=11;fontFamily=monospace;fontColor=#1E40AF;fillColor=#FFFFFF;fontStyle=1;" vertex="1" parent="1">
|
|
<mxGeometry x="200" y="500" width="280" height="20" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="l7-e2" style="endArrow=classic;html=1;strokeColor=#1E40AF;strokeWidth=4;fontFamily=Pretendard,Helvetica;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="l7-ic-bg" target="l7-pod">
|
|
<mxGeometry relative="1" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="l7-num2" value="B2" style="ellipse;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#1E40AF;fontColor=#1E40AF;fontSize=11;fontStyle=1;fontFamily=Pretendard,Helvetica;strokeWidth=2;" vertex="1" parent="1">
|
|
<mxGeometry x="935" y="568" width="30" height="24" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="l7-pkt2-tag" value="◀ ━━━ TCP 2 connection (신규 생성) ━━━ ▶" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#1E40AF;strokeColor=#1E40AF;fontColor=#FFFFFF;fontSize=12;fontStyle=1;fontFamily=Pretendard,Helvetica;align=center;verticalAlign=middle;" vertex="1" parent="1">
|
|
<mxGeometry x="820" y="525" width="280" height="26" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="l7-pkt2" value="src=IngressIP, dst=PodIP:8080" style="text;html=1;align=center;verticalAlign=middle;fontSize=11;fontFamily=monospace;fontColor=#1E40AF;fillColor=#FFFFFF;fontStyle=1;" vertex="1" parent="1">
|
|
<mxGeometry x="850" y="500" width="240" height="20" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="l7-pkt2-xff" value="X-Forwarded-For: 203.0.113.5 (HTTP 헤더로 원본 IP 보존)" style="text;html=1;align=center;verticalAlign=middle;fontSize=10;fontFamily=monospace;fontColor=#15803D;fillColor=#FFFFFF;fontStyle=1;" vertex="1" parent="1">
|
|
<mxGeometry x="850" y="610" width="320" height="20" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="l7-dnat-marker" value="DNAT (kube-proxy)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFEDD5;strokeColor=#C2410C;strokeWidth=1;fontSize=10;fontStyle=2;fontFamily=Pretendard,Helvetica;fontColor=#7C2D12;align=center;verticalAlign=middle;" vertex="1" parent="1">
|
|
<mxGeometry x="900" y="568" width="120" height="22" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="l7-note-bg" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#DBEAFE;strokeColor=#1E40AF;strokeWidth=1;dashed=1;" vertex="1" parent="1">
|
|
<mxGeometry x="1240" y="475" width="290" height="240" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="l7-note-title" value="L7 특성" style="text;html=1;align=center;verticalAlign=top;whiteSpace=wrap;fontSize=12;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#1E40AF;spacingTop=8;" vertex="1" parent="1">
|
|
<mxGeometry x="1240" y="475" width="290" height="22" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="l7-n1" value="✓ HTTP 풀 디코딩 (Host · Path)" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=11;fontFamily=Pretendard,Helvetica;fontColor=#15803D;spacingLeft=14;" vertex="1" parent="1">
|
|
<mxGeometry x="1240" y="503" width="290" height="22" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="l7-n2" value="✓ Header 기반 분기 (canary · A/B)" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=11;fontFamily=Pretendard,Helvetica;fontColor=#15803D;spacingLeft=14;" vertex="1" parent="1">
|
|
<mxGeometry x="1240" y="525" width="290" height="22" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="l7-n3" value="✓ TLS 종단 + Middleware 체인" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=11;fontFamily=Pretendard,Helvetica;fontColor=#15803D;spacingLeft=14;" vertex="1" parent="1">
|
|
<mxGeometry x="1240" y="547" width="290" height="22" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="l7-n4" value="✓ X-Forwarded-For 로 원본 IP 보존" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=11;fontFamily=Pretendard,Helvetica;fontColor=#15803D;spacingLeft=14;" vertex="1" parent="1">
|
|
<mxGeometry x="1240" y="569" width="290" height="22" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="l7-n5" value="△ user-space — 약간의 오버헤드" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=11;fontFamily=Pretendard,Helvetica;fontColor=#B45309;spacingLeft=14;" vertex="1" parent="1">
|
|
<mxGeometry x="1240" y="591" width="290" height="22" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="l7-n6" value="△ TCP 2 connection (Client↔IC, IC↔Pod)" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=11;fontFamily=Pretendard,Helvetica;fontColor=#B45309;spacingLeft=14;" vertex="1" parent="1">
|
|
<mxGeometry x="1240" y="613" width="290" height="22" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="l7-n7" value="△ IC→Pod 도 결국 kube-proxy DNAT" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=11;fontFamily=Pretendard,Helvetica;fontColor=#B45309;spacingLeft=14;" vertex="1" parent="1">
|
|
<mxGeometry x="1240" y="635" width="290" height="22" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="l7-n-sep" value="" style="endArrow=none;html=1;strokeColor=#1E40AF;strokeWidth=1;dashed=1;" edge="1" parent="1">
|
|
<mxGeometry relative="1" as="geometry">
|
|
<mxPoint x="1250" y="664" as="sourcePoint" />
|
|
<mxPoint x="1520" y="664" as="targetPoint" />
|
|
</mxGeometry>
|
|
</mxCell>
|
|
<mxCell id="l7-n-sum" value="→ TCP 2 connection 으로 분리 + HTTP 처리" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=11;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#1E40AF;spacingLeft=14;" vertex="1" parent="1">
|
|
<mxGeometry x="1240" y="673" width="290" height="22" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="caption-bg" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#F6F8FA;strokeColor=#D0D7DE;" vertex="1" parent="1">
|
|
<mxGeometry x="40" y="800" width="1520" height="44" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="caption" value="L4 = 커널 DNAT 1회로 매우 빠름, HTTP 모름 / L7 = TCP 2개 분리 + HTTP 풀 인지로 라우팅·미들웨어 가능 — 백엔드 도달은 모두 결국 kube-proxy 경유" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;fontSize=14;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#24292F;" vertex="1" parent="1">
|
|
<mxGeometry x="40" y="800" width="1520" height="44" as="geometry" />
|
|
</mxCell>
|
|
|
|
</root>
|
|
</mxGraphModel>
|
|
</diagram>
|
|
</mxfile>
|