runlot을 직접 보유한 머신에서 실행
같은 제품을 여러분의 서버나 Kubernetes 클러스터에서, 여러분의 PostgreSQL, 오브젝트 스토어, 라이선스 파일과 함께 실행합니다. 데이터는 밖으로 나가지 않습니다.
셀프 호스팅 runlot은 runlot.io에서 사용하는 제품과 같으며, 여러분이 정한 곳에 설치됩니다. 컨트롤 플레인, 데이터 노드, Git 호스팅, 대시보드는 여러분이 소유한 머신에서 실행됩니다. 메타데이터는 직접 운영하는 PostgreSQL에 저장되고, 백업과 파일은 직접 운영하는 S3 호환 스토어로 보내지며, 저희가 제공하는 것은 서명된 라이선스 파일뿐입니다.
모든 설치에 해당하는 세 가지 사실이 있으며, 다른 무엇보다 먼저 읽어 두시기 바랍니다.
마스터 키는 여러분이 보관하며, 저희에게는 사본이 없습니다
openssl rand -hex 32모든 백업은 이 값에서 파생된 키로 암호화됩니다. 설치 프로그램은 이 값을 여러분의 설정에서 읽으며, 키를 직접 생성하지 않습니다. 값을 잃어버리면 모든 백업을 읽을 수 없게 되고, 저희가 해 드릴 수 있는 일은 없습니다. 다른 루트 시크릿을 두는 곳, 즉 머신이 사라져도 남는 곳에 보관하세요.
이 거부는 의도된 것입니다. 저희가 다시 만들 수 있는 키는 저희가 가질 수 있는 키이며, 그러면 "데이터는 밖으로 나가지 않습니다"라는 말이 저희에게도 성립하지 않게 됩니다.
라이선스는 파일이며, 오프라인으로 검증됩니다
라이선스는 저희가 오프라인으로 보관하는 키로 서명한 한 줄의 텍스트입니다. 컨트롤 플레인은 1분마다 이를 다시 읽습니다. 라이선스 서버도, 활성화 호출도, 텔레메트리도 없습니다. 제품은 저희에게 어떤 네트워크 요청도 보내지 않습니다.
| 상태 | 달라지는 점 |
|---|---|
| valid | 없습니다. |
| grace | 대시보드에 배너가 표시됩니다. 만료일 이후 30일 동안은 모든 기능이 계속 동작합니다. |
| restricted | 새 배포, 새 프로젝트, 새 가입은 license_* 오류로 거부됩니다. 이미 실행 중인 모든 것은 계속 서비스합니다. 파일을 교체하면 재시작 없이 1분 안에 제한이 해제됩니다. |
만료된 라이선스는 실행 중인 앱을 멈추지 않습니다. 상태 표는 이 규칙을 중심으로 만들어졌습니다.
세 가지 구성
| 등급 | 머신 | 무엇이 어디에서 실행되는가 |
|---|---|---|
eval | 1 | 메타패키지의 PostgreSQL과 MinIO를 포함해 모든 것을 한 호스트에서 실행합니다. 체험용이며 프로덕션용이 아닙니다. |
single | 2 | 컨트롤 플레인 하나와 데이터 노드 하나로 구성합니다. PostgreSQL과 S3는 직접 준비합니다. 데이터 노드 하나에 최대 64개의 프로젝트를 올릴 수 있습니다. |
ha | 4개 이상 | 컨트롤 플레인 하나와 N+1개의 데이터 노드로 구성하므로, 노드를 잃어도 해당 노드의 프로젝트가 옮겨갈 자리가 있습니다. |
데이터 노드는 VM에 둔 채로 컨트롤 플레인만 Helm 차트로 Kubernetes에서 실행할 수도 있습니다. 데이터 노드는 의도적으로 일반 머신입니다. 프로젝트마다 자체 cgroup 아래에서 프로세스 하나를 실행하는데, 여기에 필요한 권한은 pod보다 VM에 부여하기가 쉽습니다.