Cutting TCP 7800 leaves cross-node refresh working (200), confirming sessions travel through PostgreSQL rather than the cluster transport. Logout is the opposite: the database row is deleted but the other node answers from its stale local cache, so the A-0 conclusion that invalidation rides the database is corrected here. Two things the plan did not anticipate: a NetworkPolicy cannot sever an established connection because conntrack accepts it before policy evaluation, and Keycloak reports the partition through its readiness probe so the split node removes itself from the Service. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
26 lines
1.2 KiB
Plaintext
26 lines
1.2 KiB
Plaintext
=== 양쪽 노드의 readiness — 둘 다 DOWN 이면 전면 장애다 ===
|
|
Traceback (most recent call last):
|
|
File "<string>", line 3, in <module>
|
|
d=json.load(sys.stdin)
|
|
File "/usr/lib/python3.14/json/__init__.py", line 298, in load
|
|
return loads(fp.read(),
|
|
cls=cls, object_hook=object_hook,
|
|
parse_float=parse_float, parse_int=parse_int,
|
|
parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw)
|
|
File "/usr/lib/python3.14/json/__init__.py", line 352, in loads
|
|
return _default_decoder.decode(s)
|
|
~~~~~~~~~~~~~~~~~~~~~~~^^^
|
|
File "/usr/lib/python3.14/json/decoder.py", line 348, in decode
|
|
raise JSONDecodeError("Extra data", s, end)
|
|
json.decoder.JSONDecodeError: Extra data: line 21 column 2 (char 446)
|
|
|
|
=== 파드 Ready 상태 ===
|
|
keycloak-0 false 0
|
|
keycloak-1 true 0
|
|
|
|
=== ★ Service 엔드포인트 — 트래픽을 받는 파드가 남아 있는가 ===
|
|
ready 주소: [10.42.0.35] notReady : [10.42.1.67]
|
|
=== ★ 외부 진입점으로 실제 로그인이 되는가 (nginx→Traefik→Service) ===
|
|
https://auth.hyeonworks.com/realms/master HTTP 200
|
|
토큰 발급 HTTP 200
|