infra: APISIX ingress controller 복구 및 PostgreSQL HA 구조 명확화
- 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 네임스페이스별 수동 복사 필요 명시
This commit is contained in:
@@ -51,6 +51,23 @@ R2에 저장되는 데이터: packages, lfs, attachments, avatars, repo-avatars,
|
||||
|
||||
Gitea는 iron-kr에서 **iron-git** (ID 5584382)으로 분리. 이유: iron-kr의 `BlockNoneReferrer: true`가 git 클라이언트(Referrer 없음)를 차단하여 git push/pull 403 에러 발생. iron-git은 `BlockNoneReferrer: false`로 설정.
|
||||
|
||||
## 컨테이너 레지스트리
|
||||
|
||||
Gitea에 내장된 OCI 컨테이너 레지스트리. URL: `gitea.inouter.com`. K3s에서 이미지를 pull하려면 각 네임스페이스에 `gitea-registry` imagePullSecret이 필요.
|
||||
|
||||
```bash
|
||||
# 네임스페이스에 gitea-registry secret 복사 (mcp 네임스페이스에서)
|
||||
kubectl get secret gitea-registry -n mcp -o yaml | \
|
||||
sed 's/namespace: mcp/namespace: <대상-ns>/' | \
|
||||
kubectl apply -f -
|
||||
```
|
||||
|
||||
⚠️ **흔한 사고**: 새 네임스페이스에서 `gitea.inouter.com/...` 이미지로 Deployment를 만들면 `imagePullSecrets: [gitea-registry]`만 명시해도 secret이 그 네임스페이스에 없으면 ImagePullBackOff가 발생. K8s는 namespace 경계를 넘어 secret을 공유하지 않음. 매번 secret을 복사해야 함.
|
||||
|
||||
자동 배포 대안: cert-manager `reflector` annotation 또는 Kyverno `generate` 정책으로 자동 동기화 가능 (현재는 수동).
|
||||
|
||||
기존에 `gitea-registry` secret이 배포된 네임스페이스: `mcp`, `tools`, `api`, `default` (2026-04-08 추가).
|
||||
|
||||
## Act Runner
|
||||
|
||||
Gitea Act Runner는 [[infra-hosts|incus-jp1]]의 gitea-runner 컨테이너에서 실행 (act_runner daemon, systemd 서비스).
|
||||
|
||||
Reference in New Issue
Block a user