Files
document-haness/docs/virtualization/final/evidence/raw/lab-state-before-rebuild/35-keycloak-verify-1-3.txt
T
DongHyeonkaandClaude Opus 5 024362d096 fix(setup): 실험대를 새로 세워 setup 35편을 밟고 어긋난 명령과 결과를 고친다
기반 가이드 7단계로 실험대를 철거하고 다시 세운 뒤 virtualization setup 9편과
keycloak-session-store 26편을 순서대로 밟았다. 24편은 끝까지, 11편은 되는 데까지
밟았고 밟은 범위를 편마다 적었다.

명령이 못 도는 것을 고쳤다.

- kubectl 을 `kc-lab-1` 에서 치라고 적었는데 그 기계에 kubeconfig 가 없다.
  라벨 639개와 각 편의 「어디서 치는가」를 `[lab host]` 로 옮겼다
- `-o custom-columns=…[0]…` 이 zsh 에서 글로브로 읽혀 안 돈다. 28곳에 따옴표
- busybox `sed` 가 끝 개행을 안 붙여 A-3 의 측정이 언제나 0 이었다
- `--token-file ~/node-token` 뒤에 그 파일을 지우면 k3s agent 가 재부팅을
  못 견딘다. `/etc/rancher/node-token` 으로 옮기는 처방을 재서 넣었다
- 게스트에 없는 도구를 전제로 한 명령 넷 — `conntrack`·`dig`·`strings`·`nginx -v`
- `echo` 와 JWT 헤더가 `"이름" : [ 값 ]` 으로 찍는데 문서는 공백 없이 옮겨 적어
  그 실측으로 만든 grep·sed 가 한 줄도 못 잡는다
- B-0 이 `directAccessGrantsEnabled` 와 계정 완성을 빠뜨려 B-3 이 못 돈다
- D-4·D-4a 가 `test-server` 와 `certbot-renew.*` 를 가리키는데 실제로는
  `kc-lab-edge` 의 `certbot.service` 다
- `virsh setmaxmem --config` 를 `dominfo` 로 판정하면 틀린다. `--inactive` 로
- `LIBVIRT_DEFAULT_URI` 를 rc 에만 넣으면 `ssh host '명령'` 에서 안 먹는다

결과가 조건부인 것을 갈랐다.

- readiness 는 즉시 안 뒤집힌다. A-1·A-2 의 60초 창을 적었다
- 03 의 층 ②③ `301` 은 04 이후의 값이고 그 단계에서는 `404` 다
- A-0 의 로그 필터를 요청 직후에 치면 정반대 결론이 나온다
- A-5 의 한 방향 차단은 잠깐 `1` 이었다 `2` 로 돌아온다

증거는 두 프로젝트의 `evidence/raw/` 에 99벌을 README 와 함께 남겼다. 비밀은
길이만 적었고 화면에 찍힌 토큰은 가렸다.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-17 15:59:42 +09:00

54 lines
2.6 KiB
Plaintext

=== 05 판정 ①-① get all ===
NAME READY STATUS RESTARTS AGE
pod/keycloak-0 1/1 Running 0 68s
pod/keycloak-1 1/1 Running 0 68s
pod/postgres-7b474b88c8-s6vdh 1/1 Running 0 68s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/keycloak ClusterIP 10.43.173.152 <none> 8080/TCP 69s
service/keycloak-headless ClusterIP None <none> 8080/TCP,9000/TCP 69s
service/postgres ClusterIP 10.43.38.64 <none> 5432/TCP 69s
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/postgres 1/1 1 1 69s
NAME DESIRED CURRENT READY AGE
replicaset.apps/postgres-7b474b88c8 1 1 1 69s
NAME READY AGE
statefulset.apps/keycloak 2/2 69s
=== 05 판정 ①-② get secret,configmap,pvc,ingress ===
NAME TYPE DATA AGE
secret/keycloak-lab-secrets Opaque 2 69s
NAME DATA AGE
configmap/kube-root-ca.crt 1 69s
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE
persistentvolumeclaim/postgres-data Bound pvc-fe269834-3dd1-4b1f-82f6-a53413310a30 5Gi RWO local-path <unset> 69s
NAME CLASS HOSTS ADDRESS PORTS AGE
ingress.networking.k8s.io/keycloak traefik auth.hyeonworks.com 192.168.122.11,192.168.122.12 80 69s
=== 05 판정 ② postgres 사슬 ===
NAME DESIRED CURRENT READY AGE
replicaset.apps/postgres-7b474b88c8 1 1 1 69s
NAME READY STATUS RESTARTS AGE
pod/postgres-7b474b88c8-s6vdh 1/1 Running 0 69s
--- Deployment 는 라벨 없이 ---
NAME READY UP-TO-DATE AVAILABLE AGE
postgres 1/1 1 1 69s
--- keycloak 쪽 ---
NAME READY STATUS RESTARTS AGE
pod/keycloak-0 1/1 Running 0 69s
pod/keycloak-1 1/1 Running 0 69s
=== 05 판정 ③ Secret 길이 (값은 안 찍는다) ===
Data
====
KC_BOOTSTRAP_ADMIN_PASSWORD: 19 bytes
POSTGRES_PASSWORD: 22 bytes
--- ② 길이만 ---
22
--- ③ 파드 안에서 길이만 ---
길이=19