obsidian: 정본 문서에서 히스토리/인시던트 분리 완료
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>
This commit is contained in:
@@ -6,18 +6,14 @@ tags: [k3s, traefik, gateway-api]
|
||||
|
||||
## 개요
|
||||
|
||||
K3s 메인 라우팅을 Traefik이 담당 (2026-03-25 APISIX에서 전환).
|
||||
K3s 메인 라우팅을 Traefik이 담당. APISIX는 독립 LoadBalancer(MetalLB VIP 192.168.9.50)로 병렬 운영.
|
||||
|
||||
### 전환 이력
|
||||
- 2026-03-21: K3s Ingress → Gateway API 전환 (기존 클러스터, Traefik v3.6.9)
|
||||
- 2026-03-24: 새 클러스터(kr2)에서 APISIX + Ingress Controller 2.0으로 구성
|
||||
- 2026-03-25: APISIX Ingress Controller의 Gateway API 플러그인 제한으로 **메인 HTTP 라우팅을 Traefik 으로 교체**
|
||||
- APISIX 는 여전히 독립 LoadBalancer (MetalLB VIP 192.168.9.50) 로 운영 중, 다만 route 는 `juiceshop.keepanker.cv` 1건만 남아 SafeLine chaitin-waf 플러그인 통합 테스트 용도. Traefik 과 동등한 병렬 gateway 로 언제든 새 route 추가 가능.
|
||||
전환 이력: [[../history/2026-03-25-apisix-to-traefik-routing|history]]
|
||||
|
||||
## Traefik 배포 (새 클러스터)
|
||||
## Traefik 배포
|
||||
|
||||
- **DaemonSet** (kube-system 네임스페이스)
|
||||
- LoadBalancer 192.168.9.53 (MetalLB, 이전 hostPort 80/443에서 전환)
|
||||
- LoadBalancer 192.168.9.53 (MetalLB)
|
||||
- Gateway API provider 활성화
|
||||
- TLSStore CRD로 와일드카드 인증서 기본 로드
|
||||
- 와일드카드 인증서: *.inouter.com, *.inouter.com, *.actions.it.com, *.api.inouter.com, *.mcp.inouter.com
|
||||
@@ -103,10 +99,6 @@ rewrite name hcv.inouter.com traefik.kube-system.svc.cluster.local
|
||||
| NodeHosts (IP 직접 등록) | 단순 | ClusterIP 변경 시 수동 갱신 필요, stale 엔트리 위험 |
|
||||
| **rewrite (현재)** | ClusterIP 자동 추종 | HTTPRoute 추가 시 rewrite 규칙도 추가 필요 |
|
||||
|
||||
### 장애 사례 (2026-03-22)
|
||||
|
||||
NodeHosts에 `gitea.inouter.com → 10.43.205.207`(stale ClusterIP)이 남아있어서 ArgoCD 전체가 Gitea 싱크 실패(Unknown 상태). CoreDNS rewrite 방식으로 교체하여 해결.
|
||||
|
||||
### 유지보수
|
||||
|
||||
새 HTTPRoute 추가 시 `coredns-custom` ConfigMap에 rewrite 규칙 추가 후 CoreDNS 재시작:
|
||||
|
||||
Reference in New Issue
Block a user