Files

115 lines
12 KiB
Plaintext

<mxfile host="65bd71144e">
<diagram name="07-traefik" id="traefik">
<mxGraphModel dx="965" dy="915" 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="grp-ext" value="외부" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#F6F8FA;strokeColor=#D0D7DE;strokeWidth=1;fontSize=12;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#57606A;align=left;verticalAlign=top;spacingLeft=10;spacingTop=6;" parent="1" vertex="1">
<mxGeometry x="40" y="120" width="160" height="440" as="geometry"/>
</mxCell>
<mxCell id="grp-ks" value="kube-system" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFF7ED;strokeColor=#FB923C;strokeWidth=2;fontSize=12;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#C2410C;align=left;verticalAlign=top;spacingLeft=10;spacingTop=6;" parent="1" vertex="1">
<mxGeometry x="220" y="120" width="1080" height="440" as="geometry"/>
</mxCell>
<mxCell id="grp-mnt" value="mnt" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#EFF6FF;strokeColor=#3B82F6;strokeWidth=2;fontSize=12;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#1E40AF;align=left;verticalAlign=top;spacingLeft=10;spacingTop=6;" parent="1" vertex="1">
<mxGeometry x="1320" y="120" width="240" height="440" as="geometry"/>
</mxCell>
<mxCell id="user" 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;" parent="1" vertex="1">
<mxGeometry x="90" y="290" width="60" height="60" as="geometry"/>
</mxCell>
<mxCell id="user-lbl" value="브라우저 · docker push" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;fontSize=11;fontFamily=Pretendard,Helvetica;fontStyle=1;" parent="1" vertex="1">
<mxGeometry x="40" y="354" width="160" height="20" as="geometry"/>
</mxCell>
<mxCell id="traefik" value="" style="shape=image;html=1;image=https://www.vectorlogo.zone/logos/traefikio/traefikio-icon.svg;imageAspect=1;" parent="1" vertex="1">
<mxGeometry x="240" y="290" width="60" height="60" as="geometry"/>
</mxCell>
<mxCell id="traefik-lbl" value="Traefik router" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;fontSize=12;fontFamily=Pretendard,Helvetica;fontStyle=1;" parent="1" vertex="1">
<mxGeometry x="200" y="354" width="140" height="20" as="geometry"/>
</mxCell>
<mxCell id="m1" value="보안 헤더 4종&#xa;(XSS · Frame · NoSniff · Referrer)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFEDD5;strokeColor=#FB923C;strokeWidth=2;fontSize=12;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#C2410C;align=center;verticalAlign=middle;" parent="1" vertex="1">
<mxGeometry x="430" y="290" width="240" height="60" as="geometry"/>
</mxCell>
<mxCell id="m1-lbl" value="security-headers" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;fontSize=11;fontFamily=monospace;fontColor=#57606A;" parent="1" vertex="1">
<mxGeometry x="430" y="354" width="240" height="18" as="geometry"/>
</mxCell>
<mxCell id="num1" value="①" style="ellipse;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#C2410C;fontColor=#C2410C;fontSize=13;fontStyle=1;fontFamily=Pretendard,Helvetica;strokeWidth=2;" parent="1" vertex="1">
<mxGeometry x="538" y="270" width="24" height="24" as="geometry"/>
</mxCell>
<mxCell id="m1-note" value="keycloak 전용 변형: frameDeny 제외 (admin 콘솔 iframe 허용)" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;fontSize=10;fontStyle=2;fontFamily=Pretendard,Helvetica;fontColor=#9A6700;" parent="1" vertex="1">
<mxGeometry x="380" y="376" width="340" height="16" as="geometry"/>
</mxCell>
<mxCell id="branch-pt" value="" style="ellipse;whiteSpace=wrap;html=1;fillColor=#FB923C;strokeColor=#C2410C;strokeWidth=2;" parent="1" vertex="1">
<mxGeometry x="844" y="312" width="16" height="16" as="geometry"/>
</mxCell>
<mxCell id="branch-lbl" value="ingress 별 분기" style="text;html=1;align=left;verticalAlign=middle;fontSize=10;fontStyle=2;fontFamily=Pretendard,Helvetica;fontColor=#57606A;" parent="1" vertex="1">
<mxGeometry x="866" y="338" width="100" height="18" as="geometry"/>
</mxCell>
<mxCell id="m4" value="BasicAuth&#xa;(registry 전용)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#F3E8FF;strokeColor=#7C3AED;strokeWidth=2;dashed=1;fontSize=12;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#5B21B6;align=center;verticalAlign=middle;" parent="1" vertex="1">
<mxGeometry x="940" y="430" width="180" height="60" as="geometry"/>
</mxCell>
<mxCell id="m4-lbl" value="basic-auth" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;fontSize=11;fontFamily=monospace;fontColor=#57606A;" parent="1" vertex="1">
<mxGeometry x="940" y="494" width="180" height="18" as="geometry"/>
</mxCell>
<mxCell id="m4-tag" value="R" style="ellipse;whiteSpace=wrap;html=1;fillColor=#7C3AED;strokeColor=#5B21B6;fontColor=#FFFFFF;fontSize=11;fontStyle=1;fontFamily=Pretendard,Helvetica;strokeWidth=1;" parent="1" vertex="1">
<mxGeometry x="1018" y="410" width="24" height="24" as="geometry"/>
</mxCell>
<mxCell id="auth-svr" value="" style="shape=image;html=1;image=https://www.vectorlogo.zone/logos/springio/springio-icon.svg;imageAspect=1;" parent="1" vertex="1">
<mxGeometry x="1380" y="290" width="60" height="60" as="geometry"/>
</mxCell>
<mxCell id="auth-svr-lbl" value="auth-server" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;fontSize=12;fontFamily=Pretendard,Helvetica;fontStyle=1;" parent="1" vertex="1">
<mxGeometry x="1340" y="354" width="140" height="20" as="geometry"/>
</mxCell>
<mxCell id="reg-svr" value="" style="shape=image;html=1;image=https://raw.githubusercontent.com/kubernetes/community/master/icons/svg/resources/unlabeled/deploy.svg;imageAspect=1;" parent="1" vertex="1">
<mxGeometry x="1380" y="430" width="60" height="60" as="geometry"/>
</mxCell>
<mxCell id="reg-svr-lbl" value="docker-registry" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;fontSize=12;fontFamily=Pretendard,Helvetica;fontStyle=1;" parent="1" vertex="1">
<mxGeometry x="1340" y="494" width="140" height="20" as="geometry"/>
</mxCell>
<mxCell id="e0" style="endArrow=classic;html=1;strokeColor=#57606A;strokeWidth=3;fontFamily=Pretendard,Helvetica;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="user" target="traefik" edge="1">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="e0-lbl" value="HTTP" style="text;html=1;align=center;verticalAlign=middle;fontSize=11;fontFamily=Pretendard,Helvetica;fontColor=#24292F;fillColor=#FFFFFF;" parent="1" vertex="1">
<mxGeometry x="160" y="306" width="60" height="20" as="geometry"/>
</mxCell>
<mxCell id="e1" style="endArrow=classic;html=1;strokeColor=#FB923C;strokeWidth=4;fontFamily=Pretendard,Helvetica;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="traefik" target="m1" edge="1">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="e3" style="endArrow=none;html=1;strokeColor=#FB923C;strokeWidth=4;fontFamily=Pretendard,Helvetica;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="m1" target="branch-pt" edge="1">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="e-main-lbl" value="auth-server / oauth2-proxy ingress" style="text;html=1;align=center;verticalAlign=middle;fontSize=11;fontFamily=Pretendard,Helvetica;fontColor=#C2410C;fillColor=#FFFFFF;fontStyle=1;" parent="1" vertex="1">
<mxGeometry x="1060" y="298" width="220" height="20" as="geometry"/>
</mxCell>
<mxCell id="e-branch" style="endArrow=classic;html=1;strokeColor=#7C3AED;strokeWidth=3;dashed=1;fontFamily=Pretendard,Helvetica;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="branch-pt" target="m4" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="852" y="460"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="e-branch-lbl" value="docker-registry ingress" style="text;html=1;align=center;verticalAlign=middle;fontSize=11;fontFamily=Pretendard,Helvetica;fontColor=#5B21B6;fillColor=#FFFFFF;fontStyle=1;" parent="1" vertex="1">
<mxGeometry x="690" y="450" width="160" height="20" as="geometry"/>
</mxCell>
<mxCell id="e-m4-reg" style="endArrow=classic;html=1;strokeColor=#7C3AED;strokeWidth=3;dashed=1;fontFamily=Pretendard,Helvetica;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="m4" target="reg-svr" edge="1">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="legend" value="① 메인 흐름 (모든 ingress) R registry ingress 전용 분기" style="text;html=1;align=center;verticalAlign=middle;fontSize=11;fontStyle=2;fontFamily=Pretendard,Helvetica;fontColor=#57606A;" parent="1" vertex="1">
<mxGeometry x="180" y="572" width="1120" height="22" as="geometry"/>
</mxCell>
<mxCell id="yaml-bg" value="annotation 으로 미들웨어 체인 선언 (docker-registry ingress 예시)" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#1E1E1E;strokeColor=#D0D7DE;strokeWidth=1;fontSize=12;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#A5F3FC;align=left;verticalAlign=top;spacingLeft=14;spacingTop=8;" parent="1" vertex="1">
<mxGeometry x="40" y="610" width="1520" height="100" as="geometry"/>
</mxCell>
<mxCell id="yaml-text" value="metadata:&#xa; annotations:&#xa; traefik.ingress.kubernetes.io/router.middlewares: kube-system-security-headers@kubernetescrd, mnt-docker-registry-basic-auth@kubernetescrd&#xa; traefik.ingress.kubernetes.io/router.entrypoints: web" style="text;html=1;align=left;verticalAlign=top;whiteSpace=wrap;fontSize=11;fontFamily=monospace;fontColor=#A5F3FC;spacingLeft=20;" parent="1" vertex="1">
<mxGeometry x="40" y="640" width="1520" height="70" as="geometry"/>
</mxCell>
<mxCell id="e-main" style="endArrow=classic;html=1;strokeColor=#FB923C;strokeWidth=4;fontFamily=Pretendard,Helvetica;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="branch-pt" target="auth-svr" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1340" y="320"/>
</Array>
</mxGeometry>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>