Gitea v1.25.5 오프라인 설치 가이드
폐쇄망 Kubernetes 환경에서 Gitea Git 서버를 Helm으로 설치하는 절차를 정의합니다.
0. 오프라인 설치 자산 준비 (인터넷 환경)
폐쇄망에 반입할 Helm 차트와 컨테이너 이미지(.tar)가 charts/ 및 images/ 디렉토리에 없는 경우, 인터넷이 연결된 외부 PC(리눅스)에서 아래 스크립트를 실행하여 자산을 다운로드해야 합니다.
주의: 이 작업은 폐쇄망 내부가 아닌, 외부망에서 사전에 수행되어야 합니다. (Docker 또는 containerd(
ctr),helmCLI 설치 필수)
# 컴포넌트 스크립트 디렉토리로 이동
cd scripts/
# 실행 권한 부여 및 다운로드 스크립트 실행
chmod +x download_assets_offline.sh
sudo ./download_assets_offline.sh
스크립트 실행이 완료되면 charts/ 디렉토리에 .tgz 차트 파일이, images/ 디렉토리에 .tar 이미지 파일들이 생성됩니다. 전체 프로젝트 폴더를 압축하여 폐쇄망 내부로 반입하십시오.
구성 명세
| 항목 | 버전 | 용도 |
|---|---|---|
| Gitea | v1.25.5 | Git 서버 |
| Gitea Chart | v12.5.3 | Helm 배포 |
| 데이터베이스 | SQLite / PostgreSQL | 저장소 |
사전 조건
- Kubernetes 클러스터 구성 완료
- Helm v3.x 설치 완료
- Harbor 레지스트리 접근 가능 (
<NODE_IP>:30002) - Envoy Gateway 설치 완료 (도메인 접속 사용 시)
아키텍처
Client → NodePort :30003 → Gitea Pod (HTTP/Web UI)
Client → NodePort :30022 → Gitea Pod (SSH/Git)
Client → Envoy Gateway → gitea.devops.internal (도메인, 선택)
1단계: 에셋 준비 (인터넷 가능 환경)
# Helm 차트 다운로드
helm repo add gitea-charts https://dl.gitea.com/charts/
helm pull gitea-charts/gitea --version 12.5.3 --untar --untardir ./charts/
2단계: 이미지 업로드 (폐쇄망 환경)
3단계: 설치 실행
스크립트 실행 중 대화형으로 입력합니다.
이미지 소스 선택
데이터베이스 선택
| 타입 | 특징 |
|---|---|
| SQLite | 별도 DB Pod 불필요. 단일 노드 환경 권장 |
| PostgreSQL | 별도 PostgreSQL Pod 배포. 데이터 영속성 강화 |
노드 고정 (선택)
특정 워커 노드에 배치할 경우 노드 이름을 입력합니다. 엔터 입력 시 자동 배치됩니다.
4단계: 설치 확인
5단계: 초기 접속
접속 주소
| 접속 방식 | 주소 |
|---|---|
| NodePort (HTTP) | http://<NODE_IP>:30003 |
| NodePort (SSH) | ssh://git@<NODE_IP>:30022 |
| 도메인 | http://gitea.devops.internal |
관리자 계정
초기 관리자 계정은 values.yaml의 adminUser 항목을 참조합니다.
# Secret 방식 사용 시 비밀번호 확인
kubectl get secret gitea-admin-secret -n gitea \
-o jsonpath='{.data.password}' | base64 -d
Git 클라이언트 설정
# HTTP 방식
git clone http://<NODE_IP>:30003/<USER>/<REPO>.git
# SSH 방식
git clone ssh://git@<NODE_IP>:30022/<USER>/<REPO>.git
6단계: 삭제
삭제 시 PV/PVC 삭제 여부를 선택합니다. PV는 Retain 정책이므로 PVC 삭제 후에도 호스트 데이터는 유지됩니다.
운영 참고
로그 확인
SQLite → PostgreSQL 전환
- Gitea 관리자 페이지 → 사이트 관리 → 데이터베이스 마이그레이션 실행
install.sh재실행 시 DB 타입2(PostgreSQL) 선택- 마이그레이션 완료 후 기존 SQLite 파일 삭제
TLS 적용 (선택)
Envoy Gateway에서 TLS Termination을 처리합니다.
manifests/httproute-gitea.yaml에 HTTPS 리스너 참조를 추가하세요.