Files
document-haness/docs/virtualization/final/assets/diagrams/two-l7-hops-entry-recursion/two-l7-hops-entry-recursion.drawio
T

58 lines
5.7 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<mxfile host="app.diagrams.net" modified="2026-07-23T00:00:00.000Z" agent="techviz-harness" version="24.7.17" type="device">
<diagram id="two-l7-hops-entry-recursion" name="L7 두 홉과 진입점 이중화 재귀">
<mxGraphModel dx="1198" dy="489" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1198" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0"/>
<mxCell id="1" parent="0"/>
<mxCell id="n_browser" value="Browser" tooltip="외부 요청의 시작점. | Evidence: L15860-L15864" style="whiteSpace=wrap;html=1;rounded=1;strokeWidth=2;fontSize=14;fontStyle=1;fillColor=#ffffff;strokeColor=#2d4357;verticalAlign=middle;dashed=1;fillColor=#f5f7fa;" vertex="1" parent="1">
<mxGeometry x="70.0" y="138.5" width="150.0" height="84.0" as="geometry"/>
</mxCell>
<mxCell id="n_selector" value="앞단 selector&lt;br/&gt;edge redundancy" tooltip="nginx를 여러 머신으로 이중화했을 때 어느 nginx로 갈지 정하는 새 앞단. | Evidence: L15941-L15945" style="whiteSpace=wrap;html=1;rounded=1;strokeWidth=2;fontSize=14;fontStyle=1;fillColor=#ffffff;strokeColor=#2d4357;verticalAlign=middle;" vertex="1" parent="1">
<mxGeometry x="70.0" y="294.5" width="150.0" height="71.0" as="geometry"/>
</mxCell>
<mxCell id="n_edge-nginx" value="edge nginx&lt;br/&gt;L7&lt;br/&gt;TLS 종료&lt;br/&gt;고정 노드 선택" tooltip="클러스터 밖 진입점. TLS와 인증서, forwarded header, 어느 노드로 보낼지를 맡는다. | Evidence: L15860-L15882" style="whiteSpace=wrap;html=1;rounded=1;strokeWidth=2;fontSize=14;fontStyle=1;fillColor=#ffffff;strokeColor=#2d4357;verticalAlign=middle;strokeColor=#2563eb;strokeWidth=2;" vertex="1" parent="1">
<mxGeometry x="381.5" y="60.0" width="150.0" height="105.0" as="geometry"/>
</mxCell>
<mxCell id="n_new-spof" value="selector가 새 SPOF" tooltip="selector를 하나 더 두면 같은 단일 장애점 질문이 한 단계 앞으로 이동한다. | Evidence: L15941-L15952" style="whiteSpace=wrap;html=1;rounded=1;strokeWidth=2;fontSize=14;fontStyle=1;fillColor=#ffffff;strokeColor=#2d4357;verticalAlign=middle;" vertex="1" parent="1">
<mxGeometry x="381.5" y="237.0" width="150.0" height="64.0" as="geometry"/>
</mxCell>
<mxCell id="n_nginx-pair" value="nginx-1 · nginx-2&lt;br/&gt;서로 다른 머신" tooltip="진짜 이중화를 위해 머신을 늘린 edge nginx 쌍. | Evidence: L15934-L15944" style="whiteSpace=wrap;html=1;rounded=1;strokeWidth=2;fontSize=14;fontStyle=1;fillColor=#ffffff;strokeColor=#2d4357;verticalAlign=middle;" vertex="1" parent="1">
<mxGeometry x="380.0" y="373.0" width="153.0" height="71.0" as="geometry"/>
</mxCell>
<mxCell id="n_traefik" value="Traefik&lt;br/&gt;L7&lt;br/&gt;Ingress&lt;br/&gt;동적 Pod 선택" tooltip="클러스터 안에서 Service/Ingress 상태를 따라 어느 Pod로 보낼지 정한다. | Evidence: L15872-L15882" style="whiteSpace=wrap;html=1;rounded=1;strokeWidth=2;fontSize=14;fontStyle=1;fillColor=#ffffff;strokeColor=#2d4357;verticalAlign=middle;" vertex="1" parent="1">
<mxGeometry x="693.0" y="199.5" width="150.0" height="105.0" as="geometry"/>
</mxCell>
<mxCell id="n_pod" value="Pod" tooltip="Traefik이 선택한 실제 워크로드. | Evidence: L15860-L15864" style="whiteSpace=wrap;html=1;rounded=1;strokeWidth=2;fontSize=14;fontStyle=1;fillColor=#ffffff;strokeColor=#2d4357;verticalAlign=middle;" vertex="1" parent="1">
<mxGeometry x="1003.0" y="220.0" width="150.0" height="64.0" as="geometry"/>
</mxCell>
<mxCell id="e_browser-edge" value="HTTPS" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=2;endArrow=block;endFill=1;" edge="1" parent="1" source="n_browser" target="n_edge-nginx">
<mxGeometry relative="1" as="geometry">
<mxPoint x="324.8" y="146.5" as="offset"/>
</mxGeometry>
</mxCell>
<mxCell id="e_edge-traefik" value="노드 선택 · HTTP" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=2;endArrow=block;endFill=1;" edge="1" parent="1" source="n_edge-nginx" target="n_traefik">
<mxGeometry relative="1" as="geometry">
<mxPoint x="636.2" y="182.2" as="offset"/>
</mxGeometry>
</mxCell>
<mxCell id="e_selector-pair" value="nginx 선택" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=2;endArrow=block;endFill=1;" edge="1" parent="1" source="n_selector" target="n_nginx-pair">
<mxGeometry relative="1" as="geometry">
<mxPoint x="324.0" y="373.8" as="offset"/>
</mxGeometry>
</mxCell>
<mxCell id="e_selector-spof" value="단일 selector" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=2;endArrow=block;endFill=1;" edge="1" parent="1" source="n_selector" target="n_new-spof">
<mxGeometry relative="1" as="geometry">
<mxPoint x="324.8" y="295.0" as="offset"/>
</mxGeometry>
</mxCell>
<mxCell id="e_traefik-pod" value="Ingress routing" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=2;endArrow=block;endFill=1;" edge="1" parent="1" source="n_traefik" target="n_pod">
<mxGeometry relative="1" as="geometry">
<mxPoint x="923.0" y="224.0" as="offset"/>
</mxGeometry>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>