Kubernetes
Kubernetes 환경에서 ObjectOS를 배포합니다.
Kubernetes
관리형 시크릿, 인그레스, 프로브, 롤링 업그레이드, 고객 관리형 데이터베이스가 필요한 프로덕션 배포에는 Kubernetes를 사용하세요.
ObjectOS는 아직 패키징된 Helm 차트를 제공하지 않으므로, 아래 가이드는 게시된 컨테이너 이미지를 중심으로 구성할 매니페스트를 설명합니다.
배포 구성
프로덕션 ObjectOS 배포에는 일반적으로 다음이 포함됩니다.
| 구성 요소 | 권장 사항 |
|---|---|
| Deployment | 단일 ObjectOS 컨테이너 이미지 |
| Service | HTTP 트래픽을 위한 ClusterIP 서비스 |
| Ingress | TLS 종료 및 고객 호스트명 라우팅 |
| Secret | OS_AUTH_SECRET, 컨트롤 플레인 토큰, 데이터베이스 자격 증명 |
| ConfigMap | 시크릿이 아닌 런타임 구성 |
| Persistent storage | 로컬 파일 아티팩트나 SQLite 평가 데이터를 사용할 때만 필요 |
| External database | 프로덕션 비즈니스 데이터에 권장 |
필수 구성
최소한 다음을 구성하세요.
env:
- name: PORT
value: "3000"
- name: OS_AUTH_SECRET
valueFrom:
secretKeyRef:
name: objectos-secrets
key: auth-secret클라우드 연결 모드의 경우:
env:
- name: OS_CLOUD_URL
value: "https://cloud.example.com"
- name: OS_CLOUD_API_KEY
valueFrom:
secretKeyRef:
name: objectos-secrets
key: cloud-api-key파일 기반 모드의 경우, 아티팩트를 마운트하고 다음을 설정하세요.
env:
- name: OS_ARTIFACT_FILE
value: "/artifacts/objectstack.json"프로브
ObjectOS는 프로젝트 커널이 완전히 해석되기 전에 응답하는 내장 GET /health
엔드포인트를 제공하며, 이는 liveness 및 readiness 프로브 모두에 적합한
대상입니다.
readinessProbe:
httpGet:
path: /health
port: 3000
initialDelaySeconds: 5
periodSeconds: 10
livenessProbe:
httpGet:
path: /health
port: 3000
initialDelaySeconds: 15
periodSeconds: 20더 엄격한 readiness 검사를 원한다면, 추가 프로브를 애플리케이션 고유의 생성된 API 라우트로 지정하세요. 이는 아티팩트가 로드되고 커널이 요청을 처리하고 있음을 확인해 줍니다.
인그레스와 CORS
엣지 또는 인그레스에서 TLS를 종료하세요. 고객이 사용하는 프론트엔드 오리진에 대해 CORS를 명시적으로 구성하세요. 와일드카드 오리진과 자격 증명을 포함한 요청을 함께 사용하지 마세요.
ObjectOS가 프록시 뒤에서 실행될 때는, 프록시가 자체 값을 설정하기 전에
클라이언트가 제공한 X-Forwarded-For 값을 제거하는지 확인하세요. 속도
제한과 감사 추적은 신뢰할 수 있는 호출자 신원에 의존합니다.
롤링 업그레이드
ObjectOS 이미지 버전과 애플리케이션 아티팩트 버전은 분리되어 있습니다. 각각 독립적으로 롤링하세요.
- ObjectOS 이미지: 컨테이너 태그를 변경하여 업그레이드합니다.
- 애플리케이션 아티팩트: 새로운 불변 아티팩트를 게시하거나 마운트합니다.
- 롤백: 이전 이미지 태그 또는 아티팩트 포인터를 복원합니다.