기반 가이드 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>
52 lines
4.7 KiB
Plaintext
52 lines
4.7 KiB
Plaintext
2026-09-17 에 test-server 를 문서대로 철거하고 다시 세운 기록.
|
|
|
|
문서가 맞는지 실물로 확인하는 것이 목적이라, 명령을 고쳐 치지 않고 **문서에 적힌
|
|
그대로** 쳤다. 그래서 실패한 출력도 그대로 들어 있다 — 06 이 그것이다.
|
|
|
|
| 파일 | 무엇 |
|
|
|---|---|
|
|
| 01 | 철거 전 호스트 상태 전부 |
|
|
| 02 | 철거 문서의 「지우기 전에 먼저 본다」 |
|
|
| 03 | 철거 1단계 — 게스트 셋 |
|
|
| 04 | 철거 2단계 — DHCP 예약 셋 |
|
|
| 05 | 철거 확인표 다섯 줄 |
|
|
| 06 | **구축 5번을 문서 그대로 쳤다 → 실패.** meta 파일 이름에 `.yaml` 이 빠져 있다 |
|
|
| 07 | 이름을 고치고 세 장을 구웠다. 문서에는 한 장 굽는 절만 있다 |
|
|
| 08 | 시드 볼륨 셋 업로드 |
|
|
| 09 | DHCP 예약 셋 |
|
|
| 10~11 | `virt-install` 세 대 |
|
|
| 12 | 부팅 뒤 리스 — 셋 다 예약 주소를 받았다 |
|
|
| 13 | 게스트 SSH 와 `vdb` 가 `iso9660 CIDATA` 인 것 |
|
|
| 14 | `cloud-init schema` 는 `sudo:` 리스트형을 거부하는데 런타임은 받는다 |
|
|
| 15 | **k3s 사전 확인이 실패.** `REMOTE HOST IDENTIFICATION HAS CHANGED!` |
|
|
| 16 | 별칭은 되고 IP 직접 지정은 막힌다 — `Host kc-lab-*` 가 IP 에 안 걸린다 |
|
|
| 17 | 옛 키를 지우고 다시 |
|
|
| 18~19 | k3s server 설치와 확인 |
|
|
| 20 | kubeconfig 를 lab host 로 |
|
|
| 21~22 | 토큰 전달과 agent 설치 |
|
|
| 23 | 2노드 클러스터 확인 |
|
|
|
|
비밀은 옮기지 않았다. 14 에 평문 비밀번호와 공개키가 찍혀 나와 `<REDACTED>` 로
|
|
가렸고, 가린 자리에 길이만 남겼다.
|
|
25-edge-nginx-config.txt 03 1-④·2·3 — sites-enabled/default 를 지우고 keycloak-lab 을 써서 링크·nginx -t·reload 까지
|
|
26-edge-nginx-verify.txt 03 3-②③④ 와 층 ①② — nginx -t 가 두 줄이다([warn] 없음), nginx -v 가 command not found, 층 ② 가 404
|
|
27-edge-doc-mismatch.txt which nginx 가 깔린 상태에서도 빈손인 것 · PATH · sudo nginx -v · nginx -t 3회 warn 0
|
|
28-host-state-before-dnat.txt 03 4번 치기 전 호스트 — tailscale0 있음, DNAT 파일과 유닛이 2026-09-11 자로 이미 있음, 호스트 sudo 는 비밀번호를 묻는다
|
|
29-host-dnat-files.txt 호스트에 깔려 있는 .nft 와 유닛 원문 — forward 체인이 남아 있고 ExecStartPost 가 없다 (문서·저장소 원본과 다르다)
|
|
30-layer3-from-workstation.txt 03 층 ③ 을 밖에서 — curl: (7) Failed to connect. 29 의 ExecStartPost 누락이 그대로 드러난 자리
|
|
31-cert-doc-precheck.txt 04 확인 ①② 와 1번 — dig 이 게스트에 없다, nginx -v 가 sudo 없이는 안 된다, certbot plugins 세 줄은 문서대로
|
|
32-cert-doc-dig-remedy.txt 처방 검증 — getent hosts 와 dnsutils 설치 뒤의 dig 이 같은 주소를 낸다
|
|
33-keycloak-precheck.txt 05 확인 ①② — 매니페스트 목록, 000 tls=0 (연결이 안 돼도 tls=0 이 찍힌다), 2노드 Ready
|
|
34-keycloak-apply.txt 05 1-②·2-① — apply 출력 9줄과 rollout status. Waiting for … 줄이 먼저 나온다
|
|
35-keycloak-verify-1-3.txt 05 판정 ①~③ — get all·get secret,configmap,pvc,ingress·사슬·Secret 길이 19/22/19 (값은 안 찍었다)
|
|
36-keycloak-verify-4-6.txt 05 판정 ④~⑥ — Endpoints 둘, PVC 가 postgres-data 하나, ISPN000094 에 (v=16.0.12), jgroups_ping 2행
|
|
37-keycloak-cluster-size.txt 05 판정 ⑥ 지표 — 임시 파드가 읽은 vendor_cluster_size 2.0, Keycloak 안에 curl 이 없다(exit 127)
|
|
38-keycloak-verify-7-8.txt 05 판정 ⑦⑧ — 밖에서는 000(04 미실시), Host 헤더를 실은 80 은 엣지·Traefik 둘 다 200, 세션 표 0행
|
|
39-observability-apply.txt 06 1·2 — apply 출력, rollout, 파드 네 줄(38초에 grafana 가 0/1)
|
|
40-observability-verify.txt 06 판정 ①~④ — job 네 개, health 가 unknown 인 keycloak 둘, can-i 의 경고 줄, 원소 하나뿐인 cluster_size
|
|
41-observability-cluster-size-retry.txt 90초 뒤 다시 — health 가 up 이 되고 원소 둘 다 2. node/pod/exported_node 세 라벨이 다른 것을 말한다
|
|
42-power-cycle-memory.txt 07 1번 — setmaxmem/setmem --config 뒤 dominfo 가 안 바뀐다. 게스트 free -m 도 옛 값
|
|
43-dominfo-vs-config.txt 같은 순간의 dominfo(5242880) 와 dumpxml --inactive(4194304). 바꾼 것이 들어갔는지는 --inactive 가 답한다
|
|
44-host-prep-checks.txt 00 의 확인 명령 전부 — vmx, kvm 모듈 셋, 저장소, virsh 12.7.0, libvirtd.socket, libvirt 그룹, default 네트워크, sudo 없는 virsh list
|
|
45-libvirt-uri-mechanism.txt rc 파일은 비대화형 ssh 에서 안 읽힌다. 그런데도 되는 까닭은 ~/.config/libvirt/libvirt.conf 의 uri_default
|