ObjectOS
배포

Kubernetes

Kubernetes 환경에서 ObjectOS를 배포합니다.

Kubernetes

관리형 시크릿, 인그레스, 프로브, 롤링 업그레이드, 고객 관리형 데이터베이스가 필요한 프로덕션 배포에는 Kubernetes를 사용하세요.

ObjectOS는 아직 패키징된 Helm 차트를 제공하지 않으므로, 아래 가이드는 게시된 컨테이너 이미지를 중심으로 구성할 매니페스트를 설명합니다.

배포 구성

프로덕션 ObjectOS 배포에는 일반적으로 다음이 포함됩니다.

구성 요소권장 사항
Deployment단일 ObjectOS 컨테이너 이미지
ServiceHTTP 트래픽을 위한 ClusterIP 서비스
IngressTLS 종료 및 고객 호스트명 라우팅
SecretOS_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 이미지: 컨테이너 태그를 변경하여 업그레이드합니다.
  • 애플리케이션 아티팩트: 새로운 불변 아티팩트를 게시하거나 마운트합니다.
  • 롤백: 이전 이미지 태그 또는 아티팩트 포인터를 복원합니다.

On this page