HomeLab 구성
목표
- 클러스터의 모든 구성 요소는 git + argocd를 통해 배포된다
- 클러스터의 네임스페이스는 백업 / 복구가 가능해야 한다
- pvc에 대한 백업 / 복구가 가능해야 한다
- 클러스터 자체가 새롭게 생성되더라도 클러스터 간의 서비스 migration이 가능해야 한다
- 클러스터를 위한 인증, 모니터링, 비밀 관리, GitOps 환경이 제공 되야 한다
- 인터넷이 안되도 클러스터의 구성 요소들은 내부적으로 문제 없어야 한다
관리 클러스터
- RKE2 기반으로 클러스터를 위한 관리 클러스터
- 단일 노드로 구성되며, KDE로 구성된다. (스냅샷 백업 / 복구를 위해)
- 관리 클러스터를 위한 모든 설정은 monorepo로 관리한다
- 이 관리 클러스터는 다음의 구성 서비스를 포함한다
- rke2
- k8s 클러스터를 구성
- openebs
- 단일 노드 클러스터를 위한 storage class 지원
- kube-prometheus-stack
- 클러스터에 대한 모니터링
- argocd
- 메인 클러스터를 위한 gitops 지원
- openbao
- 비밀키 관리
- cert-manager
- 클러스터 인증서 관리
- redis
- 클러스터에 대한 인메모리 DB 제공
- postgres
- 클러스터 서비스에 대한 DB
- gitea
- GitHub 의존성을 탈피하기 위한 자체 git
- harbor
- helm 배포 및 컨테이너 이미지 관리
- keyclock
- 클러스터 서비스들에 대한 SSO 제공
- rke2
진행 상황
서비스 | 진행 여부 | GitOps | Ingress | Prometheus | SSO |
---|---|---|---|---|---|
RKE2 | O | - | - | O | - |
argocd | O | - | O | 14584 | O |
cert-manager | O | O | - | need SM | - |
openebs | O | O | - | O | - |
kube-prometheus-stack | O | O | O | - | TODO |
openbao | O | O | O | 12904 | - |
redis | O | O | O | TODO | - |
postgres | O | O | - | TODO | - |
gitea | O | O | O | need SM | TODO |
harbor | O | O | O | TODO | TODO |
keycloak | TODO | ? | ? | TODO | - |
서비스 클러스터
- kde로 구성
- 관리 클러스터에 구성된 harbor와 argocd, gitea를 통해 서비스 설치
- 주요 설치 서비스로 rke2, rancher 구성
- storage class는 nfs 사용 예정
- istio를 통한 서비스 메시 제공
- 주요 SaaS 서비스로 comfyui, open-webui, supabase, jupyter hub, coder, mattermost, sonarqube, bolt.diy, vaultwarden, opensearch, grafana, minio,