The forward upgrade to 26.7.3 was zero downtime across 87 samples, and since databasechangelog stayed at 210 the rollback to 26.7.0 also succeeded, which narrows D-2's conclusion: rolling back fails when the schema moved, not because of the version number. The row count is the check. Role changes never reach the upstream through request repetition; the session is a snapshot taken at login and only a new session picks up the new claim. Auditing the docs also surfaced that Prometheus scrapes only keycloak, kubelet, node-exporter and itself, so the B-layer experiments have no metrics to screenshot rather than missing screenshots. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
58 lines
4.3 KiB
XML
58 lines
4.3 KiB
XML
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 760 470" width="760" height="470" font-family="system-ui,-apple-system,Segoe UI,Roboto,sans-serif">
|
||
<style>
|
||
.t{font-size:13px;fill:#1f2328}.s{font-size:11px;fill:#59636e}.h{font-size:14px;font-weight:600;fill:#1f2328}
|
||
.box{fill:#fff;stroke:#8c959f;stroke-width:1.4;rx:6}
|
||
.host{fill:#f6f8fa;stroke:#59636e;stroke-width:1.6;rx:8}
|
||
.node{fill:#fff;stroke:#0969da;stroke-width:1.6;rx:8}
|
||
.ln{stroke:#59636e;stroke-width:1.4;fill:none;marker-end:url(#a)}
|
||
</style>
|
||
<defs><marker id="a" markerWidth="9" markerHeight="9" refX="8" refY="4.5" orient="auto"><path d="M0,0 L9,4.5 L0,9 z" fill="#59636e"/></marker></defs>
|
||
|
||
<rect class="box" x="290" y="12" width="180" height="38"/>
|
||
<text class="t" x="380" y="30" text-anchor="middle">개발 노트북</text>
|
||
<text class="s" x="380" y="44" text-anchor="middle">브라우저 · kubectl · Playwright</text>
|
||
<path class="ln" d="M380,52 L380,80"/>
|
||
<text class="s" x="392" y="70">https · tailnet 100.x · split DNS</text>
|
||
|
||
<rect class="host" x="40" y="84" width="680" height="66"/>
|
||
<text class="h" x="56" y="106">test-server</text>
|
||
<text class="s" x="56" y="122">Arch Linux · 12GB · WiFi only · sudo 는 비밀번호 필요</text>
|
||
<rect class="box" x="430" y="94" width="270" height="46"/>
|
||
<text class="t" x="565" y="112" text-anchor="middle">nginx :443 — TLS 종료</text>
|
||
<text class="s" x="565" y="128" text-anchor="middle">auth / app1 / app2 (SAN 3개, 와일드카드 아님)</text>
|
||
|
||
<path class="ln" d="M240,152 L200,186"/><path class="ln" d="M520,152 L560,186"/>
|
||
<text class="s" x="330" y="172" text-anchor="middle">http · libvirt NAT (virbr0)</text>
|
||
|
||
<rect class="node" x="40" y="190" width="320" height="250"/>
|
||
<text class="h" x="56" y="212">kc-lab-1 · 5120MB</text>
|
||
<text class="s" x="56" y="228">k3s server · 10.42.0.0/24</text>
|
||
<rect class="box" x="56" y="238" width="130" height="26"/><text class="t" x="121" y="255" text-anchor="middle">traefik ×1</text>
|
||
<rect class="box" x="196" y="238" width="148" height="26"/><text class="t" x="270" y="255" text-anchor="middle">coredns</text>
|
||
<rect class="box" x="56" y="272" width="130" height="26"/><text class="t" x="121" y="289" text-anchor="middle">keycloak-1</text>
|
||
<rect class="box" x="196" y="272" width="148" height="26"/><text class="t" x="270" y="289" text-anchor="middle">bff (1/2)</text>
|
||
<rect class="box" x="56" y="306" width="288" height="26"/><text class="t" x="200" y="323" text-anchor="middle">oauth2-proxy (1/2)</text>
|
||
<rect class="box" x="56" y="340" width="288" height="46"/>
|
||
<text class="t" x="200" y="358" text-anchor="middle">prometheus (PVC) · grafana</text>
|
||
<text class="s" x="200" y="374" text-anchor="middle">관측 스택은 여기 고정 — 죽이지 않는다</text>
|
||
|
||
<rect class="node" x="400" y="190" width="320" height="250"/>
|
||
<text class="h" x="416" y="212">kc-lab-2 · 4096MB</text>
|
||
<text class="s" x="416" y="228">k3s agent · 10.42.1.0/24</text>
|
||
<rect class="box" x="416" y="238" width="288" height="26"/><text class="t" x="560" y="255" text-anchor="middle">keycloak-0</text>
|
||
<rect class="box" x="416" y="272" width="140" height="26"/><text class="t" x="486" y="289" text-anchor="middle">bff (2/2)</text>
|
||
<rect class="box" x="566" y="272" width="138" height="26"/><text class="t" x="635" y="289" text-anchor="middle">oauth2-proxy</text>
|
||
<rect class="box" x="416" y="306" width="140" height="46"/>
|
||
<text class="t" x="486" y="324" text-anchor="middle">postgres</text><text class="s" x="486" y="340" text-anchor="middle">PVC (노드 고정)</text>
|
||
<rect class="box" x="566" y="306" width="138" height="46"/>
|
||
<text class="t" x="635" y="324" text-anchor="middle">redis</text><text class="s" x="635" y="340" text-anchor="middle">PVC + AOF</text>
|
||
<text class="s" x="560" y="374" text-anchor="middle">장애 주입은 여기</text>
|
||
|
||
<path d="M360,290 L400,290" stroke="#0969da" stroke-width="1.6" fill="none" marker-end="url(#a)"/>
|
||
<path d="M400,300 L360,300" stroke="#0969da" stroke-width="1.6" fill="none" marker-end="url(#a)"/>
|
||
<text class="s" x="380" y="284" text-anchor="middle">7800</text>
|
||
<text class="s" x="380" y="318" text-anchor="middle">JGroups</text>
|
||
|
||
<text class="s" x="40" y="460">A-0 에서 확인: 세션은 이 7800 이 아니라 postgres 를 통해 공유된다</text>
|
||
</svg>
|