134 lines
13 KiB
Plaintext
134 lines
13 KiB
Plaintext
<mxfile host="app.diagrams.net" modified="2026-04-28T00:00:00.000Z" agent="Mozilla/5.0" version="24.0.0" type="device">
|
|
<diagram name="s10-vault-problems" id="vault-problems">
|
|
<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="grp1" value="① auto-unseal 의존 사슬 — 한 점이 죽으면 전체 사슬이 끊김" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FEE2E2;strokeColor=#B91C1C;strokeWidth=2;fontSize=14;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#B91C1C;align=left;verticalAlign=top;spacingLeft=14;spacingTop=10;" vertex="1" parent="1">
|
|
<mxGeometry x="60" y="120" width="940" height="380" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="b-kms" value="KMS
(외부)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#B91C1C;strokeWidth=2;fontSize=14;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#7F1D1D;align=center;verticalAlign=middle;" vertex="1" parent="1">
|
|
<mxGeometry x="100" y="220" width="140" height="80" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="b-vault" value="" style="shape=image;html=1;image=https://www.vectorlogo.zone/logos/vaultproject/vaultproject-icon.svg;imageAspect=1;" vertex="1" parent="1">
|
|
<mxGeometry x="320" y="230" width="60" height="60" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="b-vault-lbl" value="Vault" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;fontSize=12;fontFamily=Pretendard,Helvetica;fontStyle=1;" vertex="1" parent="1">
|
|
<mxGeometry x="300" y="294" width="100" height="20" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="b-secret" value="" style="shape=image;html=1;image=https://raw.githubusercontent.com/kubernetes/community/master/icons/svg/resources/unlabeled/secret.svg;imageAspect=1;" vertex="1" parent="1">
|
|
<mxGeometry x="500" y="230" width="60" height="60" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="b-secret-lbl" value="K8s Secret" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;fontSize=12;fontFamily=Pretendard,Helvetica;fontStyle=1;" vertex="1" parent="1">
|
|
<mxGeometry x="475" y="294" width="110" height="20" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="b-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="680" y="230" width="60" height="60" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="b-pod-lbl" value="Pod" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;fontSize=12;fontFamily=Pretendard,Helvetica;fontStyle=1;" vertex="1" parent="1">
|
|
<mxGeometry x="660" y="294" width="100" height="20" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="b-cluster" value="모든 워크로드" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#B91C1C;strokeWidth=2;fontSize=12;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#7F1D1D;align=center;verticalAlign=middle;" vertex="1" parent="1">
|
|
<mxGeometry x="830" y="230" width="140" height="60" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="e1" style="endArrow=classic;html=1;strokeColor=#B91C1C;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="b-kms" target="b-vault">
|
|
<mxGeometry relative="1" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="e1-lbl" value="unseal key" style="text;html=1;align=center;verticalAlign=middle;fontSize=11;fontFamily=Pretendard,Helvetica;fontColor=#B91C1C;fillColor=#FFFFFF;" vertex="1" parent="1">
|
|
<mxGeometry x="244" y="250" width="80" height="18" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="e2" style="endArrow=classic;html=1;strokeColor=#B91C1C;strokeWidth=4;fontFamily=Pretendard,Helvetica;" edge="1" parent="1" source="b-vault" target="b-secret">
|
|
<mxGeometry relative="1" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="e3" style="endArrow=classic;html=1;strokeColor=#B91C1C;strokeWidth=4;fontFamily=Pretendard,Helvetica;" edge="1" parent="1" source="b-secret" target="b-pod">
|
|
<mxGeometry relative="1" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="e4" style="endArrow=classic;html=1;strokeColor=#B91C1C;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="b-pod" target="b-cluster">
|
|
<mxGeometry relative="1" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="x-kms" value="⚡" style="text;html=1;align=center;verticalAlign=middle;fontSize=42;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#B91C1C;" vertex="1" parent="1">
|
|
<mxGeometry x="120" y="160" width="100" height="60" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="x-kms-lbl" value="장애 발생" style="text;html=1;align=center;verticalAlign=middle;fontSize=12;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#B91C1C;" vertex="1" parent="1">
|
|
<mxGeometry x="120" y="200" width="100" height="20" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="cascade" value="KMS 장애 → Vault unseal 불가 → Secret 합성 차단 → 모든 Pod 시작 실패 → 클러스터 다운" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FECACA;strokeColor=#B91C1C;strokeWidth=2;fontSize=13;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#7F1D1D;align=center;verticalAlign=middle;" vertex="1" parent="1">
|
|
<mxGeometry x="100" y="350" width="860" height="46" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="circular" value="더 깊은 순환 — auto-unseal token 자체가 K8s Secret 에 저장 (= etcd 에 남음). Vault 도입 동기 “시크릿을 etcd 밖에 두자” 와 충돌" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FECACA;strokeColor=#B91C1C;strokeWidth=2;dashed=1;fontSize=12;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#7F1D1D;align=center;verticalAlign=middle;" vertex="1" parent="1">
|
|
<mxGeometry x="100" y="404" width="860" height="46" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="grp2" value="② 사이드카 비용 — 클러스터 규모에 비례" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FEE2E2;strokeColor=#B91C1C;strokeWidth=2;fontSize=14;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#B91C1C;align=left;verticalAlign=top;spacingLeft=14;spacingTop=10;" vertex="1" parent="1">
|
|
<mxGeometry x="1020" y="120" width="540" height="380" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="metric-num" value="156 Mi / Pod" style="text;html=1;align=center;verticalAlign=middle;fontSize=58;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#B91C1C;" vertex="1" parent="1">
|
|
<mxGeometry x="1040" y="160" width="500" height="100" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="metric-lbl" value="vault-agent 1.17.2 · idle baseline 실측" style="text;html=1;align=center;verticalAlign=middle;fontSize=14;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#7F1D1D;" vertex="1" parent="1">
|
|
<mxGeometry x="1040" y="265" width="500" height="24" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="metric-formula" value="kubectl top pod (3회 측정 동일) · 100 Pod 환산 ≈ 15 GiB" style="text;html=1;align=center;verticalAlign=middle;fontSize=12;fontStyle=2;fontFamily=monospace;fontColor=#7F1D1D;" vertex="1" parent="1">
|
|
<mxGeometry x="1040" y="289" width="500" height="20" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="dot-grid" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;strokeColor=#B91C1C;strokeWidth=1;dashed=1;" vertex="1" parent="1">
|
|
<mxGeometry x="1080" y="320" width="420" height="100" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="dot-lbl" value="Pod 마다 사이드카 — 클러스터 규모에 비례 증가" style="text;html=1;align=center;verticalAlign=top;fontSize=11;fontFamily=Pretendard,Helvetica;fontColor=#B91C1C;fontStyle=2;" vertex="1" parent="1">
|
|
<mxGeometry x="1080" y="425" width="420" height="20" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="impact2" value="probe 실패 = Pod 전체 unhealthy · 사이드카 lifecycle / log 모두 별도 관리" style="text;html=1;align=center;verticalAlign=middle;fontSize=12;fontStyle=2;fontFamily=Pretendard,Helvetica;fontColor=#7F1D1D;" vertex="1" parent="1">
|
|
<mxGeometry x="1040" y="455" width="500" height="20" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="grp3" value="③ K8s 네이티브 아님 — 어노테이션 기반" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FEE2E2;strokeColor=#B91C1C;strokeWidth=2;fontSize=14;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#B91C1C;align=left;verticalAlign=top;spacingLeft=14;spacingTop=10;" vertex="1" parent="1">
|
|
<mxGeometry x="60" y="520" width="1500" height="220" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="left-h" value="Injector (사이드카 + 어노테이션)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#B91C1C;strokeWidth=1;fontSize=13;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#B91C1C;align=center;verticalAlign=middle;" vertex="1" parent="1">
|
|
<mxGeometry x="100" y="570" width="660" height="40" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="left-y1" value="✗ Secret 갱신 = Pod 재시작 (어노테이션 변경)" style="text;html=1;align=left;verticalAlign=middle;fontSize=13;fontFamily=Pretendard,Helvetica;fontColor=#7F1D1D;" vertex="1" parent="1">
|
|
<mxGeometry x="120" y="618" width="640" height="24" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="left-y2" value="✗ GitOps 가 “sync 됐는지” 검증 어려움" style="text;html=1;align=left;verticalAlign=middle;fontSize=13;fontFamily=Pretendard,Helvetica;fontColor=#7F1D1D;" vertex="1" parent="1">
|
|
<mxGeometry x="120" y="648" width="640" height="24" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="left-y3" value="✗ ArgoCD / Flux 가 “실제 주입 성공” 모름" style="text;html=1;align=left;verticalAlign=middle;fontSize=13;fontFamily=Pretendard,Helvetica;fontColor=#7F1D1D;" vertex="1" parent="1">
|
|
<mxGeometry x="120" y="678" width="640" height="24" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="left-y4" value="✗ drift 추적 불가 — 어노테이션은 K8s 리소스 1급 객체 아님" style="text;html=1;align=left;verticalAlign=middle;fontSize=13;fontFamily=Pretendard,Helvetica;fontColor=#7F1D1D;" vertex="1" parent="1">
|
|
<mxGeometry x="120" y="708" width="640" height="24" as="geometry" />
|
|
</mxCell>
|
|
|
|
<mxCell id="right-h" value="VSO (CRD 기반) ← 다음 슬라이드의 해법" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#DDD6FE;strokeColor=#5B21B6;strokeWidth=1;fontSize=13;fontStyle=1;fontFamily=Pretendard,Helvetica;fontColor=#5B21B6;align=center;verticalAlign=middle;" vertex="1" parent="1">
|
|
<mxGeometry x="820" y="570" width="700" height="40" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="right-y1" value="✓ Secret 갱신 = 자동 reconcile (60s)" style="text;html=1;align=left;verticalAlign=middle;fontSize=13;fontFamily=Pretendard,Helvetica;fontColor=#5B21B6;" vertex="1" parent="1">
|
|
<mxGeometry x="840" y="618" width="680" height="24" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="right-y2" value="✓ GitOps 가 VaultStaticSecret 상태 그대로 검증" style="text;html=1;align=left;verticalAlign=middle;fontSize=13;fontFamily=Pretendard,Helvetica;fontColor=#5B21B6;" vertex="1" parent="1">
|
|
<mxGeometry x="840" y="648" width="680" height="24" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="right-y3" value="✓ Controller 가 reconcile 결과를 status 로 공개" style="text;html=1;align=left;verticalAlign=middle;fontSize=13;fontFamily=Pretendard,Helvetica;fontColor=#5B21B6;" vertex="1" parent="1">
|
|
<mxGeometry x="840" y="678" width="680" height="24" as="geometry" />
|
|
</mxCell>
|
|
<mxCell id="right-y4" value="✓ CRD = K8s 1급 객체 → drift 자동 감지 + 복구" style="text;html=1;align=left;verticalAlign=middle;fontSize=13;fontFamily=Pretendard,Helvetica;fontColor=#5B21B6;" vertex="1" parent="1">
|
|
<mxGeometry x="840" y="708" width="680" height="24" as="geometry" />
|
|
</mxCell>
|
|
</root>
|
|
</mxGraphModel>
|
|
</diagram>
|
|
</mxfile>
|