hello

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 제공

진행 상황

서비스 진행 여부 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,