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>
A-1 — JGroups 트랜스포트(7800) 차단 증거
2026-09-04 11:38–11:52 KST · Keycloak 26.7.0 / Infinispan 16.0.12
해설: docs/experiment-a1-jgroups-transport-block.md
| 파일 | 무엇을 보여주는가 |
|---|---|
01-baseline-cluster.txt |
차단 전 — 양쪽이 뷰 ID 5·멤버 2로 일치, JGROUPS_PING 코디네이터 1명 |
02-control-before-block.txt |
대조군 — 차단 전 교차 노드 refresh 200, JGroups 지표 전부 0 |
03-block-applied.txt |
NetworkPolicy 적용. 빈 측정값을 "변화 감지"로 오판한 기록 |
04-after-block-state.txt |
차단 43초 후 — 지표 무변화, JGROUPS_PING 그대로 |
05-conntrack-problem.txt |
핵심 문제 — ESTABLISHED [ASSURED] 로 기존 연결이 살아 있음. FD_SOCK2 의 57800 포트도 함께 드러남 |
06-partition-observed.txt |
임시 curl 파드 폴링의 실패 — 빈 값·개수 불일치 |
07-cluster-size.txt |
vendor_cluster_size 가 25분 내내 2 — 분단이 일어나지 않았다는 결정적 증거 |
08-restart-forced-partition.txt |
재연결 강제 후 2 → 1 |
09-cross-node-under-partition.txt |
본 시험 — 교차 refresh 200(예측 적중), 로그아웃 후 재갱신 200(예측 빗나감) |
10-logout-not-propagated.txt |
기제 확정 — DB 행 0건인데 keycloak-0 캐시에 1건, 헬스체크 cluster health: DOWN |
11-service-impact.txt |
분단 노드가 Service 에서 빠짐. ready=[10.42.0.35] notReady=[10.42.1.67], 외부 로그인 200 |
12-recovery.txt |
90초 만에 자동 재형성, merge3_get_num_merge_events = 1, 코디네이터 재선출 |
a1-cluster-size-partition-recovery.png |
Grafana — vendor_cluster_size 가 2 → 1 → 2 로 움직이는 전 구간 |
핵심 세 줄
- NetworkPolicy 만으로는 이미 붙어 있는 클러스터를 못 끊는다. conntrack 의 ESTABLISHED 가 먼저 통과시킨다.
- 세션 공유는 분단을 견딘다(200). 통념이 틀렸고 A-0 모델이 맞다.
- 로그아웃 무효화는 7800 을 탄다. DB 행이 지워져도 반대편은 낡은 캐시로 200 을 준다 — A-0 의 인과 해석을 정정한다.