--- date: 2026-03-24 topic: K3s PostgreSQL 백엔드 이전 (외부 etcd → Supabase → Patroni) areas: - infra/k3s-migration.md - infra/infra-hosts.md - infra/postgresql-ha.md - infra/metallb.md - infra/gateway-api.md tags: [history, k3s, migration, postgresql, supabase, metallb] --- K3s 클러스터를 기존 외부 etcd 백엔드에서 Supabase PostgreSQL(kine)로 전환한 프로젝트. 2026-03-24~26 수행. ## 배경 기존 K3s 클러스터는 hp2(server), kr1(server), kr2(분리됨) 3노드에 외부 etcd(Incus 컨테이너 3개, `http://192.168.9.214:2379`, `http://192.168.9.135:2379`, `http://192.168.9.134:2379`)를 데이터스토어로 사용. 새 클러스터로 전환. ## 변경 사항 ### Phase 0: 인프라 구성 (2026-03-24~25) - kr2 첫 server 구성, Supabase PostgreSQL 연결 - cert-manager + 와일드카드 인증서 6개 + Reflector - Traefik DaemonSet (hostPort 80/443) + Gateway API - APISIX replica 1 (SafeLine WAF 테스트 라우트 1건, Ingress Controller 제거) - HAProxy 80/443 → Traefik hostPort 복원 - Longhorn v1.8.2 ### Phase 1~2: kr1 합류 + 서비스 이전 (2026-03-24~25) - kr1 server로 합류 → 2-server HA 확보 - 전 서비스 이전 완료 (NocoDB, Gitea, n8n, ArgoCD, Grafana, SearXNG, SafeLine 등) ### Phase 3: hp2 합류 (2026-03-25) - hp2 **agent**로 합류 (server 3대 → server 2 + agent 1 구성) - Supabase 커넥션 절약 (agent는 DB 커넥션 불필요) ### Vault jp1 이전 (2026-03-24) - jp1 Incus default 프로젝트, `vault` 컨테이너 (Debian 13) - Vault v1.21.4 (raft 스토리지, 스냅샷 복원) - vault-mcp-server v0.2.0 (Go 바이너리, systemd, port 8080) - K3s vault 네임스페이스 → ExternalName 서비스로 전환 ### Phase 4: 정리 (2026-03-25) - 기존 etcd Incus 컨테이너 폐기 완료 - 기존 K3s server.bak 삭제 완료 ### Phase 5: MetalLB 도입 + 네임스페이스 정리 (2026-03-26) - MetalLB L2 도입 (192.168.9.50-59), K3s ServiceLB 비활성화 - NodePort 전면 제거 → LoadBalancer 전환: - traefik: hostPort 80/443 → LoadBalancer 192.168.9.53 - apisix-gateway: NodePort 30233/31137 → LoadBalancer 192.168.9.50 - sshpiper: NodePort 31840 → LoadBalancer 192.168.9.51 - teleport-cluster: ClusterIP → LoadBalancer 192.168.9.52 - argocd-server: NodePort 30080/30443 → ClusterIP (Traefik Ingress) - ironclad/anvil NodePort → 삭제 (오사카에서 서빙) - HAProxy 백엔드: 3노드 roundrobin → MetalLB IP 단일 엔드포인트 - k3s.inouter.com DNS: 3노드 A 레코드 → 192.168.9.53 단일 - sshpiper 설치, Teleport 설치, api/mcp 네임스페이스 신설 - ironclad/anvil 네임스페이스 삭제 ## 영향 새 클러스터 end state: - 컨트롤 플레인: kr1 + kr2, 워커: hp2 - 데이터스토어: Supabase PostgreSQL(kine), Session mode pooler 5432 - 이후 2026-04-05에 Supabase → 로컬 Patroni PostgreSQL HA로 재이전 ## 참조 - `infra/infra-hosts.md` — 현재 서버/클러스터 구성 - `infra/postgresql-ha.md` — Patroni HA 구성 (Supabase 후속) - `infra/metallb.md` — MetalLB 설정