chore: gitea.anvil.it.com → gitea.inouter.com 도메인 이전
Gitea 도메인을 inouter.com으로 통합. DNS, BunnyCDN, HTTPRoute, Helm values, CoreDNS, 컨테이너 이미지 경로 모두 변경 완료.
This commit is contained in:
@@ -71,7 +71,7 @@ Obsidian + [[openmemory|OpenMemory]]를 조합한 2계층 장기기억 시스템
|
||||
|
||||
### Obsidian (1계층: 구조화된 지식)
|
||||
|
||||
Gitea 저장소: `gitea.anvil.it.com/kaffa/obsidian`
|
||||
Gitea 저장소: `gitea.inouter.com/kaffa/obsidian`
|
||||
|
||||
**Vault 구조**:
|
||||
- `infra/` — 인프라 설정, 네트워크, 서비스 운영 정보
|
||||
|
||||
@@ -89,7 +89,7 @@ etcdctl put /apisix/plugin_metadata/chaitin-waf '{"id":"chaitin-waf","nodes":[{"
|
||||
| Zone | ID | Origin | 방향 | 주요 Hostnames |
|
||||
|---|---|---|---|---|
|
||||
| iron-jp | 5555247 | 172.233.93.180 | → 오사카 | anvil.it.com, n8n.anvil.it.com, tg.anvil.it.com, linode.actions.it.com |
|
||||
| iron-kr | 5555227 | 220.120.65.245 | → 서울 (Traefik) | actions.it.com, gitea.anvil.it.com, n8n.inouter.com, jarvis.inouter.com, telegram-webhook.inouter.com, vault.inouter.com |
|
||||
| iron-kr | 5555227 | 220.120.65.245 | → 서울 (Traefik) | actions.it.com, gitea.inouter.com, n8n.inouter.com, jarvis.inouter.com, telegram-webhook.inouter.com, vault.inouter.com |
|
||||
| iron-kr-waf | 5555224 | 220.120.65.245:9443 | → 서울 (APISIX WAF) | juiceshop.keepanker.cv |
|
||||
|
||||
참고: iron-kr zone은 `DisableCookies: false` (쿠키 허용). Gitea 웹 로그인 세션에 필요.
|
||||
@@ -99,10 +99,10 @@ Edge Script: iron-jp, iron-kr에 CrowdSec bouncer middleware (ID 64811) 연결.
|
||||
|
||||
- `*.anvil.it.com` 와일드카드 CNAME → `iron-jp.b-cdn.net` (오사카)
|
||||
- iron-kr zone 호스트는 전용 CNAME 필수 (와일드카드 오버라이드)
|
||||
- `gitea.anvil.it.com` CNAME → `iron-kr.b-cdn.net`
|
||||
- `gitea.inouter.com` CNAME → `iron-kr.b-cdn.net`
|
||||
- `hcv.inouter.com` CNAME → `k3s.inouter.com` (LAN 직접, BunnyCDN 우회)
|
||||
- `nocodb.inouter.com` CNAME → `k3s.inouter.com` (LAN 직접, BunnyCDN 우회)
|
||||
- K3s CoreDNS: `gitea.anvil.it.com` → Traefik ClusterIP (10.43.205.207) 헤어핀 방지
|
||||
- K3s CoreDNS: `gitea.inouter.com` → Traefik ClusterIP (10.43.205.207) 헤어핀 방지
|
||||
|
||||
## ironclad.it.com 라우트
|
||||
|
||||
@@ -148,7 +148,7 @@ BunnyCDN WAF가 NocoDB JS를 오탐 차단하여 CDN 우회 처리 (2026-03-15).
|
||||
|
||||
### git push 500 에러 (2026-03-15)
|
||||
|
||||
**증상**: `gitea.anvil.it.com`으로 git push 시 BunnyCDN에서 403 반환 (오리진 500)
|
||||
**증상**: `gitea.inouter.com`으로 git push 시 BunnyCDN에서 403 반환 (오리진 500)
|
||||
|
||||
**원인 1 — client_body_temp 퍼미션**:
|
||||
- nginx가 큰 POST body(git pack ~20KB)를 `/usr/local/apisix/client_body_temp/`에 임시 파일로 쓸 때 퍼미션 거부
|
||||
|
||||
@@ -21,7 +21,7 @@ cert-manager 보안/신뢰성: Bearer 토큰 인증 (/health 제외), 도메인
|
||||
|
||||
## Gitea 레포
|
||||
|
||||
[[gitea]] repository is https://gitea.anvil.it.com/kaffa/cert-manager (private)
|
||||
[[gitea]] repository is https://gitea.inouter.com/kaffa/cert-manager (private)
|
||||
|
||||
## DNS
|
||||
|
||||
|
||||
@@ -35,7 +35,7 @@ K3s 메인 라우팅을 Traefik이 담당 (2026-03-25 APISIX에서 전환).
|
||||
| 서비스 | 도메인 | 상태 |
|
||||
|--------|--------|------|
|
||||
| NocoDB | nocodb.inouter.com | 200 ✅ |
|
||||
| Gitea | gitea.anvil.it.com | 200 ✅ |
|
||||
| Gitea | gitea.inouter.com | 200 ✅ |
|
||||
| n8n | n8n.inouter.com | 200 ✅ |
|
||||
| ArgoCD | argocd.inouter.com | 200 ✅ |
|
||||
| Grafana | grafana.inouter.com | 302 ✅ |
|
||||
@@ -72,14 +72,14 @@ argocd-server를 insecure 모드로 변경 (configmap `argocd-cmd-params-cm`에
|
||||
|
||||
## 클러스터 내부 DNS (헤어핀 방지)
|
||||
|
||||
Pod에서 외부 도메인(`gitea.anvil.it.com` 등)에 접근할 때 트래픽이 외부로 나갔다 돌아오는 헤어핀 NAT 문제를 방지하기 위해, CoreDNS rewrite로 서비스 도메인을 Traefik ClusterIP로 직접 해석.
|
||||
Pod에서 외부 도메인(`gitea.inouter.com` 등)에 접근할 때 트래픽이 외부로 나갔다 돌아오는 헤어핀 NAT 문제를 방지하기 위해, CoreDNS rewrite로 서비스 도메인을 Traefik ClusterIP로 직접 해석.
|
||||
|
||||
### 설정
|
||||
|
||||
ConfigMap `coredns-custom` (kube-system)의 `hairpin.override`:
|
||||
|
||||
```
|
||||
rewrite name gitea.anvil.it.com traefik.kube-system.svc.cluster.local
|
||||
rewrite name gitea.inouter.com traefik.kube-system.svc.cluster.local
|
||||
rewrite name argocd.inouter.com traefik.kube-system.svc.cluster.local
|
||||
rewrite name searxng.inouter.com traefik.kube-system.svc.cluster.local
|
||||
rewrite name mem0.inouter.com traefik.kube-system.svc.cluster.local
|
||||
@@ -91,7 +91,7 @@ rewrite name hcv.inouter.com traefik.kube-system.svc.cluster.local
|
||||
|
||||
### 동작
|
||||
|
||||
1. Pod이 `gitea.anvil.it.com` DNS 조회
|
||||
1. Pod이 `gitea.inouter.com` DNS 조회
|
||||
2. CoreDNS가 `traefik.kube-system.svc.cluster.local`로 rewrite
|
||||
3. Traefik ClusterIP 반환 → 클러스터 내부에서 처리
|
||||
4. Traefik이 HTTPRoute 호스트 매칭으로 백엔드 라우팅
|
||||
@@ -105,7 +105,7 @@ rewrite name hcv.inouter.com traefik.kube-system.svc.cluster.local
|
||||
|
||||
### 장애 사례 (2026-03-22)
|
||||
|
||||
NodeHosts에 `gitea.anvil.it.com → 10.43.205.207`(stale ClusterIP)이 남아있어서 ArgoCD 전체가 Gitea 싱크 실패(Unknown 상태). CoreDNS rewrite 방식으로 교체하여 해결.
|
||||
NodeHosts에 `gitea.inouter.com → 10.43.205.207`(stale ClusterIP)이 남아있어서 ArgoCD 전체가 Gitea 싱크 실패(Unknown 상태). CoreDNS rewrite 방식으로 교체하여 해결.
|
||||
|
||||
### 유지보수
|
||||
|
||||
|
||||
@@ -90,7 +90,7 @@ db, kroki, mq (RabbitmqCluster CR), openmemory, system-upgrade
|
||||
| Anvil | K3s 클러스터 (anvil ns): nginx(x2), php-fpm(x5), redis, ssh-server, proxysql | kubectl |
|
||||
| ArgoCD | K3s 클러스터 (argocd ns) | kubectl / NodePort 30080 |
|
||||
| cert-manager | K3s 클러스터 (cert-manager ns) | kubectl |
|
||||
| [[gitea]] | K3s 클러스터 (gitea ns): gitea, postgresql, valkey | kubectl, gitea.anvil.it.com |
|
||||
| [[gitea]] | K3s 클러스터 (gitea ns): gitea, postgresql, valkey | kubectl, gitea.inouter.com |
|
||||
| Ironclad | K3s 클러스터 (ironclad ns): nginx, php-fpm, redis, ssh-server, proxysql | kubectl / NodePort 30297 |
|
||||
| Kroki | K3s 클러스터 (kroki ns) | kubectl |
|
||||
| Longhorn | K3s 클러스터 (longhorn-system ns): 분산 스토리지 v1.8.2 | kubectl |
|
||||
|
||||
@@ -8,7 +8,7 @@ updated: 2026-03-27
|
||||
K3s 클러스터에서 Helm 차트(gitea/gitea 12.5.0)로 운영. 네임스페이스: `gitea`.
|
||||
|
||||
- Gitea 1.25.4 + PostgreSQL 16 + Valkey
|
||||
- 도메인: gitea.anvil.it.com
|
||||
- 도메인: gitea.inouter.com
|
||||
- 트래픽: BunnyCDN(iron-git, BlockNoneReferrer: false) → HAProxy → Traefik → gitea svc:3000
|
||||
- SSH 활성화, 외부 포트 2202 (relay4wd APISIX stream_route 경유: `ssh -p 2202 git@git.inouter.com`), MetalLB 192.168.9.54:22, SSH_DOMAIN: git.inouter.com
|
||||
- 스토리지: Git 저장소 Longhorn PVC 5Gi, **그 외 전부 R2** (패키지/LFS/첨부파일/아바타/아카이브/Actions)
|
||||
@@ -33,7 +33,7 @@ helm upgrade gitea gitea-charts/gitea -n gitea -f ~/k8s/gitea/values.yaml
|
||||
|
||||
## 이미지 레지스트리
|
||||
|
||||
모든 컨테이너 이미지는 `gitea.anvil.it.com/kaffa/` 경로. R2 `gitea-storage` 버킷에 저장.
|
||||
모든 컨테이너 이미지는 `gitea.inouter.com/kaffa/` 경로. R2 `gitea-storage` 버킷에 저장.
|
||||
|
||||
### R2 스토리지 설정
|
||||
|
||||
@@ -71,7 +71,7 @@ K8s CronJob `gitea-backup` (매일 03:00 UTC):
|
||||
### 웹 로그인 안 될 때 비밀번호 리셋
|
||||
|
||||
```bash
|
||||
curl -s -X PATCH "https://gitea.anvil.it.com/api/v1/admin/users/kaffa" \
|
||||
curl -s -X PATCH "https://gitea.inouter.com/api/v1/admin/users/kaffa" \
|
||||
-H "Authorization: token <API_TOKEN>" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"password":"<PASSWORD>","must_change_password":false,"login_name":"kaffa","source_id":0}'
|
||||
|
||||
@@ -10,7 +10,7 @@ SearXNG 메타 검색 엔진. K3s 클러스터(searxng 네임스페이스)에 He
|
||||
|
||||
- URL: https://searxng.inouter.com/
|
||||
- Helm chart: `searxng/searxng`
|
||||
- 설정 repo: `gitea.anvil.it.com/kaffa/k3s-config` → `searxng/`
|
||||
- 설정 repo: `gitea.inouter.com/kaffa/k3s-config` → `searxng/`
|
||||
- Values: `searxng/values.yaml`
|
||||
- 라우팅: [[gateway-api|Gateway API]] HTTPRoute (Ingress 사용 안 함)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user