15개 정본 문서에서 날짜별 변경이력, 인시던트 기록, 폐기된 구현 상세를
history/ 디렉토리로 분리. 정본은 현재 상태만 기술하는 백서 형태로 정리.
각 정본에 history 위키링크 추가.
분리된 history 파일 12건:
- apisix git push 500, k3s postgresql migration, apisix→traefik 전환
- netbis DDoS 공격, gitea 이전/분리, usb 2.5g hang + NFS hard mount
- supabase→patroni, apisix etcd 통합/분리, anomaly-detect 재설계
- patroni failover incident, zlambda nixos migration, ops-agents setup
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
kappa 피드백 + kubectl 실측 기반 정정. 이전 기록의 "SafeLine WAF 전용 리버스
프록시" 또는 "SafeLine WAF 전용" 표현은 오해의 소지가 있음.
실측 사실 (2026-04-10 kubectl get svc + ApisixRoute + HTTPRoute):
- APISIX (svc apisix-gateway): MetalLB VIP 192.168.9.50, gateway 80/443 +
admin 9180. 독립 LoadBalancer. Deployment replica 2.
ApisixRoute 1건: juiceshop/juiceshop → juiceshop.keepanker.cv → juiceshop
svc (chaitin-waf plugin 으로 SafeLine 통합 테스트)
- Traefik (svc traefik): MetalLB VIP 192.168.9.53, 80/443.
HTTPRoute 14건 (argocd/gitea/grafana/n8n/nocodb/sftpgo/openmemory/searxng/
kroki/safeline-mgt/vault-ui + api/namecheap + api/vultr + bunnycdn-mcp)
+ 5 legacy IngressRoute (vlogs/outline/vault-mcp/vault-mcp-http/bunnycdn-mcp)
→ **두 gateway 는 동등한 병렬 독립 LoadBalancer**. APISIX 는 Traefik 뒤의
리버스 프록시가 아니라 자체 MetalLB VIP 를 가진 별개 외부 인입 채널.
"SafeLine WAF 전용" 이 아니라, 2026-03-25 메인 라우팅이 Traefik 으로 이전된
이후 현재 APISIX route 가 SafeLine 테스트용 1건만 남은 상태일 뿐 — 범용
gateway 로 언제든 새 route 추가 가능.
정정 대상:
- infra/apisix.md — 서울 섹션 헤더/용도/축소 문구
- infra/infra-hosts.md — 게이트웨이 한 줄 요약
- infra/k3s-migration.md — 게이트웨이 열 + Phase 0 + Namespace 표
- infra/gateway-api.md — 전환 이력 2026-03-25 줄
- infra/crowdsec-safeline.md — waf-kr BunnyCDN Pull Zone 섹션 머리말
부수적으로 2026-04-10 에 발견된 heimdall kubectl 부재 문제 해결
(kubectl + helm + kubeconfig 복원) + tofu cloud-init 자동화 추가 —
commit bd5e4cb (ops-agents-tofu).
- iron-kr 호스트 7개 (사용자 6 + 시스템 1) 명시. gitea.inouter.com 제거 (iron-git 분리됨), outline.inouter.com 추가
- iron-jp 호스트 5개 정정 (anvil.it.com 계열, 옛 inouter.com 표기 제거)
- 옛 풀존 ID 5316471/5330178/5554681 → iron-kr/iron-jp/iron-kr-waf 통합 메모
- Edge Script 64811 attach: iron-kr + iron-jp 두 풀존 모두 (단일 아님)
- iron-kr-waf 섹션을 waf-kr 에서 재명명, 새 경로 표기
- apisix.md: real_ip_from 0.0.0.0/0, real_ip_header X-Forwarded-For, access_log_format에 xff/xrip 추가. helm values 미반영, cm 직접 patch 패턴
- victorialogs.md: 진짜 IP 기반 LogsQL 예시, parse_apisix 정규식과 APISIX log format이 짝이라는 주의
apisix.md:
- 서울 APISIX etcd: 외부 통합 → K3s 내부 apisix-etcd StatefulSet (2026-04-08)
- routes/ssls는 ApisixRoute/ApisixTls CRD로 전환 (etcd 직접 PUT 금지)
- destructive sync 동작과 객체별 관리 방법 정리
- helm values nesting 버그 회귀 방지 노트
- plugin_metadata, global_rules는 GatewayProxy CR로 관리
- ApisixRoute 예시 추가
postgresql-ha.md:
- APISIX 서울이 외부 통합 etcd 사용 안 함을 반영
- 통합 etcd는 Patroni DCS + osaka APISIX 전용
- /apisix/seoul stale prefix 삭제 절차 추가
- apisix.md: ingress controller 2026-04-08 복구, GatewayProxy + ApisixRoute CRD 호환 검증, 옛 helm values 문제 정정, ApisixRoute 예시 추가
- apisix.md: 외부 통합 etcd 클러스터 사용 명시 (K3s 내부 StatefulSet 아님), global_rules는 chaitin-waf 미포함 (라우트별 적용)
- postgresql-ha.md: pgcat가 HAProxy 단일 백엔드 경유로 변경 (2026-04-08 사고 기록), Patroni 노드 IP 직접 박지 말 것 경고
- gitea.md: 컨테이너 레지스트리 섹션 추가, gitea-registry secret 네임스페이스별 수동 복사 필요 명시
- crowdsec-safeline: SafeLine→CrowdSec 실시간 파이프라인 (PG LISTEN/NOTIFY, safeline-listener, :8088 acquisition), log-collector, ddos-detect 문서화
- apisix: K3s APISIX replica 2, etcd replica 3 HA 업그레이드 반영
- infra-hosts: APISIX HA, 2.5G USB autosuspend 장애 및 해결 기록, SafeLine 실시간 트래픽 흐름 추가
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- relay4wd Tailscale IP 수정 (100.120.61.54 → 100.103.161.4), APISIX 3.15.0
- apisix-osaka Docker APISIX 3.15.0 + etcd v3.5.11 버전 추가
- jp1 agents 프로젝트 추가, 전체 컨테이너 목록 기재
- kr1/kr2/hp2 Incus 컨테이너 목록 추가
- OpenWrt HAProxy 3노드 roundrobin 구성으로 수정
- 네트워크 대역 정정 (kr1: 10.100.3.0/24, hp2: 10.100.2.0/24)
- K3s 네임스페이스 전체 목록 갱신
- sandbox-tokyo 실행 서비스 (vault-prod, wg-easy) 추가
- 서비스 위치 테이블에 ironclad, gitea, kroki, longhorn, openmemory, registry, vault 추가
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- incus-hp2 서버 추가, OpenWrt HAProxy 라우터 추가
- 서울 K3s 클러스터 섹션 신설 (v1.34.5+k3s1, 3 control-plane)
- APISIX를 K3s 클러스터로 이전, ArgoCD/cert-manager 추가
- Vault upstream IP 수정
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- OpenWrt 포트포워딩: hp2:9080/9443 경유 APISIX로 변경
- incus proxy device 설정 반영
- APISIX 오사카/서울 인스턴스 분리 기술
- nocodb BunnyCDN 우회 처리 반영
- OVN 네트워크, DNS rebind 예외 추가
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- 전체 파일에 [[위키링크]] 추가 (Obsidian 그래프 연결)
- frontmatter에서 source: openmemory 제거
- infra-hosts.md에 서비스 위치/Incus 프로젝트 테이블 추가
- dev/claude-code-setup.md 신규 (CLAUDE.md 인스트럭션 Vault 버전)