test-server 를 비우고 다시 세운 뒤 Setup 기록 35편(virtualization 9 ·
keycloak-session-store 26)을 문서에 적힌 명령 그대로 쳤다. 어긋난 자리를
기록과 SSOT 양쪽에 실측과 함께 넣었다.
막히던 것
- 04 의 인증서 경로가 live/hyeonworks.com 이라 nginx 가 [emerg] 로 안 떴다.
실제 계보는 live/auth.hyeonworks.com 이고 「문제가 생기면」은 진단이 거꾸로였다
- 인증서가 와일드카드가 아니다. SAN 이 auth·app1·app2 셋뿐이라 그 밖의 이름은
TLS 에서 끊기고 curl 이 exit 60 · %{http_code} 000 을 낸다. SSOT 안에서
두 문단이 서로 어긋나 있었다
- A-7 14번 ①이 kc-lab-1 에서 여섯 줄 다 실패하는데 마지막 date 만 「차단」을 찍는다
검사가 실패할 수 없던 자리
- B-1 의 세션 키 고르기는 앞 단계가 $KEY 를 채워 둬서 루프가 한 건도 못 맞혀도
통과한다. KEY= 로 비우고 키마다 1/0 을 찍게 바꿨다
- k3s-agent 유닛의 sed -i 는 패턴에 $HOME 이 들어 있어 아무 줄도 안 바꾼 채 성공한다
certbot
- renew --dry-run 의 종료 코드는 성공도 0, 실패도 0, 다른 사유의 실패는 1 이다.
본문의 renew failure(s) 로만 판정할 수 있다
- --dry-run 은 staging 서버를 쓰는데 renewal/*.conf 의 account= 는 운영 계정을
가리킨다. 실패한 dry-run 이 staging 계정을 하나 더 만들어 다음 실행이 계속 멎는다
- 훅을 755 로 놓고 시뮬레이션이 성공해도 Running deploy-hook command 는 안 나온다.
certbot 2.1.0 에는 --run-deploy-hooks 도 없다
- 강제 갱신은 실제로 쳤고 서빙까지 닿았다. serial 06F3E0EF…1373 → 065547…3DF1,
notAfter Dec 3 → Dec 16, nginx worker 2629 4712 → 4745 4754
독자가 칠 수 있는 형태로
- 안 되는 형태가 번호 붙은 단계에 앉아 있던 8곳을 뒤집고, 되는 형태를 ①로 올렸다
- 랩 안에서 공개 이름을 치는 curl 65줄에 --resolve 를 붙였다. 붙인 형태를 실제로
쳐서 문서가 적은 값과 같은지 확인했다
- 힙독·sed -i·echo >>·&&·|| 를 편집기 + 파일 리스팅 + 분할 형태로 바꿨다
- 닫는 코드펜스가 빠져 뒤 200여 줄의 블록 종류가 뒤집혀 있던 곳을 포함해 3곳을 고쳤다
관문: check_body PASS · check_prose error 0 · check_evidence 두 프로젝트 문제 없음 ·
verify-tech-log-tree error 0 · verify-project-layout error 0 · 코드펜스 전수 0건
남은 것: B-0 주입은 keycloak-pattern 저장소의 소스를 고치고 이미지를 다시 구워야
해서 안 했다(unknown).
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
57 lines
4.9 KiB
Plaintext
57 lines
4.9 KiB
Plaintext
=== b5 주입 1 시각을 남기고 Redis 를 0대로 내린다 ===
|
|
18:14:47 정지
|
|
deployment.apps/redis scaled
|
|
pod/redis-f94bc6dbf-s674z condition met
|
|
=== b5 주입 검증 ① Redis 가 0대인가 ===
|
|
No resources found in keycloak-lab namespace.
|
|
NAME READY UP-TO-DATE AVAILABLE AGE
|
|
redis 0/0 0 0 168m
|
|
=== b5 주입 검증 ② BFF 로그에서 연결 시도를 찾는다 ===
|
|
2026-09-17T09:09:46.531Z WARN 1 --- [keycloak-bff] [l-1:housekeeper] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection org.postgresql.jdbc.PgConnection@13f41550 (This connection has been closed.). Possibly consider using a shorter maxLifetime value.
|
|
2026-09-17T09:09:54.173Z WARN 1 --- [keycloak-bff] [l-1:housekeeper] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection org.postgresql.jdbc.PgConnection@75a79757 (This connection has been closed.). Possibly consider using a shorter maxLifetime value.
|
|
2026-09-17T09:09:55.362Z WARN 1 --- [keycloak-bff] [l-1:housekeeper] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection org.postgresql.jdbc.PgConnection@43aef356 (This connection has been closed.). Possibly consider using a shorter maxLifetime value.
|
|
2026-09-17T09:09:57.318Z WARN 1 --- [keycloak-bff] [l-1:housekeeper] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection org.postgresql.jdbc.PgConnection@7be4bd3b (This connection has been closed.). Possibly consider using a shorter maxLifetime value.
|
|
2026-09-17T09:09:57.955Z WARN 1 --- [keycloak-bff] [l-1:housekeeper] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection org.postgresql.jdbc.PgConnection@32b0803f (This connection has been closed.). Possibly consider using a shorter maxLifetime value.
|
|
2026-09-17T09:10:19.741Z WARN 1 --- [keycloak-bff] [l-1:housekeeper] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Failed to validate connection org.postgresql.jdbc.PgConnection@5b2e9f1c (This connection has been closed.). Possibly consider using a shorter maxLifetime value.
|
|
2026-09-17T09:13:13.527Z INFO 1 --- [keycloak-bff] [xecutorLoop-1-2] i.l.core.protocol.ConnectionWatchdog : Reconnecting, last destination was redis.keycloak-lab.svc/10.43.44.209:6379
|
|
2026-09-17T09:13:13.528Z INFO 1 --- [keycloak-bff] [xecutorLoop-1-1] i.l.core.protocol.ConnectionWatchdog : Reconnecting, last destination was redis.keycloak-lab.svc/10.43.44.209:6379
|
|
2026-09-17T09:13:13.529Z WARN 1 --- [keycloak-bff] [ioEventLoop-4-2] i.l.core.protocol.ConnectionWatchdog : Cannot reconnect to [redis.keycloak-lab.svc/<unresolved>:6379]: Connection refused: redis.keycloak-lab.svc/10.43.44.209:6379
|
|
2026-09-17T09:13:13.530Z WARN 1 --- [keycloak-bff] [ioEventLoop-4-1] i.l.core.protocol.ConnectionWatchdog : Cannot reconnect to [redis.keycloak-lab.svc/<unresolved>:6379]: Connection refused: redis.keycloak-lab.svc/10.43.44.209:6379
|
|
=== b5 주입 검증 ③ 엉뚱한 것을 죽이지 않았는지 본다 ===
|
|
NAME READY STATUS RESTARTS AGE
|
|
bff-5d97897676-nmlqs 1/1 Running 0 168m
|
|
bff-5d97897676-zvfhp 1/1 Running 0 168m
|
|
keycloak-0 1/1 Running 0 3m17s
|
|
keycloak-1 1/1 Running 0 3m50s
|
|
oauth2-proxy-d9b587458-7x9jt 1/1 Running 0 74m
|
|
oauth2-proxy-d9b587458-njxdw 1/1 Running 0 74m
|
|
postgres-7b474b88c8-kvt96 1/1 Running 0 4m23s
|
|
=== b5 관찰 세 경로를 다시 친다 (문서 그대로) ===
|
|
/ 000
|
|
/bff/token-boundary 000
|
|
/actuator/health 000
|
|
=== (진단) 엣지 주소를 짚어 같은 셋 ===
|
|
/ 200
|
|
/bff/token-boundary 000
|
|
/actuator/health 000
|
|
=== (진단) token-boundary 응답 본문 ===
|
|
[본문 끝]
|
|
=== b5 관찰 health 그룹 셋을 코드와 본문으로 본다 (엣지 주소를 짚어서) ===
|
|
health 000
|
|
health/readiness 200
|
|
health/liveness 200
|
|
|
|
{"status":"UP"}
|
|
=== b5 관찰 엔드포인트가 아직 ready 인지 본다 ===
|
|
NAME ADDR READY
|
|
bff-ptf2d [10.42.1.51],[10.42.0.22] true,true
|
|
=== (진단) /actuator/health 를 더 길게 기다려 본다 ===
|
|
health 503 total 60.046452
|
|
exit=0
|
|
{"status":"DOWN","groups":["liveness","readiness"],"components":{"db":{"status":"UP","details":{"database":"PostgreSQL","validationQuery":"isValid()"}},"diskSpace":{"status":"UP","details":{"total":20922114048,"free":13516791808,"threshold":10485760,"path":"/app/.","exists":true}},"livenessState":{"status":"UP"},"ping":{"status":"UP"},"readinessState":{"status":"UP"},"redis":{"status":"DOWN","details":{"error":"org.springframework.dao.QueryTimeoutException: Redis command timed out"}},"ssl":{"status":"UP","details":{"validChains":[],"invalidChains":[]}}}}
|
|
=== (진단) /bff/token-boundary 도 길게 ===
|
|
token-boundary 000 total 90.001609
|
|
exit=28
|
|
|
|
[exited with code 0]
|