151 lines
13 KiB
Plaintext
151 lines
13 KiB
Plaintext
<mxfile host="app.diagrams.net">
|
|
<diagram name="1. 정상 pull" id="pull-1">
|
|
<mxGraphModel dx="1422" dy="800" grid="0" page="1" pageWidth="1280" pageHeight="720">
|
|
<root>
|
|
<mxCell id="0"/>
|
|
<mxCell id="1" parent="0"/>
|
|
<mxCell id="t" value="Pull 경로 — 정상 모양" style="text;align=center;fontSize=36;fontStyle=1;fontColor=#1f1f1f" vertex="1" parent="1">
|
|
<mxGeometry x="60" y="80" width="1160" height="50" as="geometry"/>
|
|
</mxCell>
|
|
<mxCell id="kb" value="kubelet" style="rounded=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=18;fontStyle=1;align=center;verticalAlign=middle" vertex="1" parent="1">
|
|
<mxGeometry x="60" y="330" width="160" height="80" as="geometry"/>
|
|
</mxCell>
|
|
<mxCell id="cd" value="containerd" style="rounded=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=18;fontStyle=1;align=center;verticalAlign=middle" vertex="1" parent="1">
|
|
<mxGeometry x="290" y="330" width="160" height="80" as="geometry"/>
|
|
</mxCell>
|
|
<mxCell id="tr" value="Traefik" style="rounded=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=18;fontStyle=1;align=center;verticalAlign=middle" vertex="1" parent="1">
|
|
<mxGeometry x="520" y="330" width="160" height="80" as="geometry"/>
|
|
</mxCell>
|
|
<mxCell id="reg" value="Registry" style="rounded=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=18;fontStyle=1;align=center;verticalAlign=middle" vertex="1" parent="1">
|
|
<mxGeometry x="750" y="330" width="160" height="80" as="geometry"/>
|
|
</mxCell>
|
|
<mxCell id="minio" value="MinIO" style="rounded=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=18;fontStyle=1;align=center;verticalAlign=middle" vertex="1" parent="1">
|
|
<mxGeometry x="980" y="330" width="160" height="80" as="geometry"/>
|
|
</mxCell>
|
|
<mxCell id="a1" style="endArrow=classic;strokeWidth=2;strokeColor=#666666" edge="1" parent="1" source="kb" target="cd"><mxGeometry relative="1" as="geometry"/></mxCell>
|
|
<mxCell id="a2" style="endArrow=classic;strokeWidth=2;strokeColor=#666666" edge="1" parent="1" source="cd" target="tr"><mxGeometry relative="1" as="geometry"/></mxCell>
|
|
<mxCell id="a3" style="endArrow=classic;strokeWidth=2;strokeColor=#666666" edge="1" parent="1" source="tr" target="reg"><mxGeometry relative="1" as="geometry"/></mxCell>
|
|
<mxCell id="a4" style="endArrow=classic;startArrow=classic;strokeWidth=2;strokeColor=#666666" edge="1" parent="1" source="reg" target="minio"><mxGeometry relative="1" as="geometry"/></mxCell>
|
|
<mxCell id="sub" value="다음 슬라이드 — 이 흐름의 3가지 함정" style="text;align=center;fontSize=22;fontColor=#666666" vertex="1" parent="1">
|
|
<mxGeometry x="60" y="500" width="1160" height="40" as="geometry"/>
|
|
</mxCell>
|
|
</root>
|
|
</mxGraphModel>
|
|
</diagram>
|
|
|
|
<diagram name="2. 함정1 — hosts.toml" id="pull-2">
|
|
<mxGraphModel dx="1422" dy="800" grid="0" page="1" pageWidth="1280" pageHeight="720">
|
|
<root>
|
|
<mxCell id="0"/>
|
|
<mxCell id="1" parent="0"/>
|
|
<mxCell id="t" value="함정 1 — K3s 가 만든 hosts.toml 이 HTTPS 강제" style="text;align=center;fontSize=28;fontStyle=1;fontColor=#cc0000" vertex="1" parent="1">
|
|
<mxGeometry x="60" y="60" width="1160" height="50" as="geometry"/>
|
|
</mxCell>
|
|
<mxCell id="src" value="registries.yaml endpoint: http://..." style="rounded=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=18;fontStyle=1;align=center;verticalAlign=middle;whiteSpace=wrap;html=1" vertex="1" parent="1">
|
|
<mxGeometry x="120" y="240" width="280" height="120" as="geometry"/>
|
|
</mxCell>
|
|
<mxCell id="k3s" value="K3s 자동 변환" style="rounded=1;fillColor=#fff2cc;strokeColor=#d6b656;fontSize=18;fontStyle=1;align=center;verticalAlign=middle" vertex="1" parent="1">
|
|
<mxGeometry x="500" y="270" width="240" height="60" as="geometry"/>
|
|
</mxCell>
|
|
<mxCell id="out" value="hosts.toml (자동 생성)" style="rounded=1;fillColor=#f8cecc;strokeColor=#b85450;fontSize=18;fontStyle=1;align=center;verticalAlign=top;spacingTop=8;whiteSpace=wrap;html=1" vertex="1" parent="1">
|
|
<mxGeometry x="840" y="220" width="320" height="160" as="geometry"/>
|
|
</mxCell>
|
|
<mxCell id="code" value="server = "https://registry/v2" [host."http://registry/v2"]" style="rounded=0;fillColor=#1f1f1f;strokeColor=#000000;fontSize=14;fontColor=#ffffff;fontFamily=Courier New;align=left;verticalAlign=middle;spacingLeft=10;whiteSpace=wrap;html=1" vertex="1" parent="1">
|
|
<mxGeometry x="860" y="280" width="280" height="80" as="geometry"/>
|
|
</mxCell>
|
|
<mxCell id="a1" style="endArrow=classic;strokeWidth=3;strokeColor=#666666" edge="1" parent="1" source="src" target="k3s"><mxGeometry relative="1" as="geometry"/></mxCell>
|
|
<mxCell id="a2" style="endArrow=classic;strokeWidth=3;strokeColor=#666666" edge="1" parent="1" source="k3s" target="out"><mxGeometry relative="1" as="geometry"/></mxCell>
|
|
<mxCell id="msg" value="HTTP 로 적어도 server 가 HTTPS 로 박힌다 → containerd 가 fallback 못 함" style="text;align=center;fontSize=20;fontColor=#cc0000;fontStyle=1" vertex="1" parent="1">
|
|
<mxGeometry x="60" y="510" width="1160" height="40" as="geometry"/>
|
|
</mxCell>
|
|
<mxCell id="fix" value="해결: registries.yaml 제거 → 자동 생성 안 함 → hosts.toml 직접 작성" style="text;align=center;fontSize=20;fontColor=#006600;fontStyle=1" vertex="1" parent="1">
|
|
<mxGeometry x="60" y="570" width="1160" height="40" as="geometry"/>
|
|
</mxCell>
|
|
</root>
|
|
</mxGraphModel>
|
|
</diagram>
|
|
|
|
<diagram name="3. 함정2 — BasicAuth" id="pull-3">
|
|
<mxGraphModel dx="1422" dy="800" grid="0" page="1" pageWidth="1280" pageHeight="720">
|
|
<root>
|
|
<mxCell id="0"/>
|
|
<mxCell id="1" parent="0"/>
|
|
<mxCell id="t" value="함정 2 — 자격증명 두 경로 중 하나만 막혀도 401" style="text;align=center;fontSize=28;fontStyle=1;fontColor=#cc0000" vertex="1" parent="1">
|
|
<mxGeometry x="60" y="60" width="1160" height="50" as="geometry"/>
|
|
</mxCell>
|
|
<mxCell id="cd" value="containerd" style="rounded=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=20;fontStyle=1;align=center;verticalAlign=middle" vertex="1" parent="1">
|
|
<mxGeometry x="540" y="540" width="200" height="80" as="geometry"/>
|
|
</mxCell>
|
|
<mxCell id="pa" value="(a) imagePullSecrets → kubelet → CRI" style="rounded=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=18;fontStyle=1;align=center;verticalAlign=middle;whiteSpace=wrap;html=1" vertex="1" parent="1">
|
|
<mxGeometry x="180" y="240" width="340" height="120" as="geometry"/>
|
|
</mxCell>
|
|
<mxCell id="pb" value="(b) hosts.toml 의 [host.*.auth] 노드 단에서 자동" style="rounded=1;fillColor=#d5e8d4;strokeColor=#82b366;fontSize=18;fontStyle=1;align=center;verticalAlign=middle;whiteSpace=wrap;html=1" vertex="1" parent="1">
|
|
<mxGeometry x="760" y="240" width="340" height="120" as="geometry"/>
|
|
</mxCell>
|
|
<mxCell id="a1" style="endArrow=classic;strokeWidth=2;strokeColor=#666666" edge="1" parent="1" source="pa" target="cd"><mxGeometry relative="1" as="geometry"/></mxCell>
|
|
<mxCell id="a2" style="endArrow=classic;strokeWidth=2;strokeColor=#666666" edge="1" parent="1" source="pb" target="cd"><mxGeometry relative="1" as="geometry"/></mxCell>
|
|
<mxCell id="msg" value="(a) 만 쓰면 ServiceAccount/Pod patch 누락 시 fail (b) 가 더 안정 — 노드 OS 가 직접 기억" style="text;align=center;fontSize=20;fontStyle=1;whiteSpace=wrap;html=1" vertex="1" parent="1">
|
|
<mxGeometry x="60" y="430" width="1160" height="80" as="geometry"/>
|
|
</mxCell>
|
|
</root>
|
|
</mxGraphModel>
|
|
</diagram>
|
|
|
|
<diagram name="4. 함정3 — 노드별" id="pull-4">
|
|
<mxGraphModel dx="1422" dy="800" grid="0" page="1" pageWidth="1280" pageHeight="720">
|
|
<root>
|
|
<mxCell id="0"/>
|
|
<mxCell id="1" parent="0"/>
|
|
<mxCell id="t" value="함정 3 — hosts.toml 은 node 별, scheduling 은 예측 불가" style="text;align=center;fontSize=28;fontStyle=1;fontColor=#cc0000" vertex="1" parent="1">
|
|
<mxGeometry x="60" y="60" width="1160" height="50" as="geometry"/>
|
|
</mxCell>
|
|
<mxCell id="pod" value="Pod" style="rounded=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=20;fontStyle=1;align=center;verticalAlign=middle" vertex="1" parent="1">
|
|
<mxGeometry x="560" y="200" width="160" height="60" as="geometry"/>
|
|
</mxCell>
|
|
<mxCell id="nx" value="node X hosts.toml ✓" style="rounded=1;fillColor=#d5e8d4;strokeColor=#82b366;fontSize=18;fontStyle=1;align=center;verticalAlign=middle;whiteSpace=wrap;html=1" vertex="1" parent="1">
|
|
<mxGeometry x="160" y="400" width="240" height="100" as="geometry"/>
|
|
</mxCell>
|
|
<mxCell id="ny" value="node Y hosts.toml ✗" style="rounded=1;fillColor=#f8cecc;strokeColor=#b85450;fontSize=18;fontStyle=1;align=center;verticalAlign=middle;whiteSpace=wrap;html=1" vertex="1" parent="1">
|
|
<mxGeometry x="520" y="400" width="240" height="100" as="geometry"/>
|
|
</mxCell>
|
|
<mxCell id="nz" value="node Z hosts.toml ✗" style="rounded=1;fillColor=#f8cecc;strokeColor=#b85450;fontSize=18;fontStyle=1;align=center;verticalAlign=middle;whiteSpace=wrap;html=1" vertex="1" parent="1">
|
|
<mxGeometry x="880" y="400" width="240" height="100" as="geometry"/>
|
|
</mxCell>
|
|
<mxCell id="a1" style="endArrow=classic;strokeWidth=2;strokeColor=#666666;dashed=1" edge="1" parent="1" source="pod" target="nx"><mxGeometry relative="1" as="geometry"/></mxCell>
|
|
<mxCell id="a2" style="endArrow=classic;strokeWidth=2;strokeColor=#cc0000" edge="1" parent="1" source="pod" target="ny"><mxGeometry relative="1" as="geometry"/></mxCell>
|
|
<mxCell id="a3" style="endArrow=classic;strokeWidth=2;strokeColor=#666666;dashed=1" edge="1" parent="1" source="pod" target="nz"><mxGeometry relative="1" as="geometry"/></mxCell>
|
|
<mxCell id="msg" value="3대 중 1대만 설정 → 67% 확률로 ImagePullBackOff" style="text;align=center;fontSize=20;fontColor=#cc0000;fontStyle=1" vertex="1" parent="1">
|
|
<mxGeometry x="60" y="560" width="1160" height="40" as="geometry"/>
|
|
</mxCell>
|
|
</root>
|
|
</mxGraphModel>
|
|
</diagram>
|
|
|
|
<diagram name="5. 해결" id="pull-5">
|
|
<mxGraphModel dx="1422" dy="800" grid="0" page="1" pageWidth="1280" pageHeight="720">
|
|
<root>
|
|
<mxCell id="0"/>
|
|
<mxCell id="1" parent="0"/>
|
|
<mxCell id="t" value="해결 — registries.yaml 제거 + hosts.toml 직접" style="text;align=center;fontSize=32;fontStyle=1;fontColor=#006600" vertex="1" parent="1">
|
|
<mxGeometry x="60" y="80" width="1160" height="50" as="geometry"/>
|
|
</mxCell>
|
|
<mxCell id="del" value="registries.yaml" style="rounded=1;fillColor=#f8cecc;strokeColor=#b85450;fontSize=22;fontStyle=1;align=center;verticalAlign=middle;strokeWidth=2" vertex="1" parent="1">
|
|
<mxGeometry x="180" y="240" width="320" height="100" as="geometry"/>
|
|
</mxCell>
|
|
<mxCell id="delx" value="✖ 제거" style="text;align=center;fontSize=32;fontStyle=1;fontColor=#cc0000" vertex="1" parent="1">
|
|
<mxGeometry x="220" y="260" width="240" height="60" as="geometry"/>
|
|
</mxCell>
|
|
<mxCell id="keep" value="hosts.toml (직접 작성)" style="rounded=1;fillColor=#d5e8d4;strokeColor=#82b366;fontSize=22;fontStyle=1;align=center;verticalAlign=top;spacingTop=12;strokeWidth=2;whiteSpace=wrap;html=1" vertex="1" parent="1">
|
|
<mxGeometry x="700" y="220" width="400" height="280" as="geometry"/>
|
|
</mxCell>
|
|
<mxCell id="code" value="server = "http://registry.project.com" [host."http://registry.project.com"] capabilities = ["pull","resolve","push"] [host."...".auth] username = "<registry-username>" password = "<registry-password>"" style="rounded=0;fillColor=#1f1f1f;strokeColor=#000000;fontSize=14;fontColor=#ffffff;fontFamily=Courier New;align=left;verticalAlign=top;spacingLeft=12;spacingTop=10;whiteSpace=wrap;html=1" vertex="1" parent="1">
|
|
<mxGeometry x="720" y="280" width="360" height="200" as="geometry"/>
|
|
</mxCell>
|
|
<mxCell id="msg" value="자동 변환 끄고, 노드 3대에 동일하게 직접" style="text;align=center;fontSize=22;fontColor=#006600;fontStyle=1" vertex="1" parent="1">
|
|
<mxGeometry x="60" y="560" width="1160" height="40" as="geometry"/>
|
|
</mxCell>
|
|
</root>
|
|
</mxGraphModel>
|
|
</diagram>
|
|
</mxfile>
|