- オンプレミス
- ホステッド
gateway:
replicas: 3
auth:
enabled: true
secretName: <oidc-auth secret name>
ingress:
hosts:
- host: <api url>
tlsSecretName: <k8s api secret name>
annotations:
nginx.ingress.kubernetes.io/backend-protocol: HTTP
nginx.ingress.kubernetes.io/force-ssl-redirect: 'true'
nginx.ingress.kubernetes.io/proxy-read-timeout: '600'
nginx.ingress.kubernetes.io/proxy-body-size: 25m
nginx.ingress.kubernetes.io/enable-cors: 'true'
nginx.ingress.kubernetes.io/configuration-snippet: |
proxy_set_header Authorization $http_authorization;
limit_req zone=240_req_min_header burst=360 nodelay;
limit_req_status 429;
cloud-ui:
ingress:
hosts:
- host: <ui url>
tlsSecretName: <k8s api secret name>
annotations:
nginx.ingress.kubernetes.io/backend-protocol: HTTP
nginx.ingress.kubernetes.io/force-ssl-redirect: 'true'
nginx.ingress.kubernetes.io/proxy-body-size: 21m
nginx.ingress.kubernetes.io/configuration-snippet: |
proxy_set_header Authorization $http_authorization;
limit_req zone=120_req_min_ip burst=240 nodelay;
limit_req_status 429;
auth-and-billing:
admins:
- temp-admin@cluster.local
- example@example.com # Email of lasting admin account
pgSecretName: pg-credentials # Only needed with a custom external postgres DB
cloudnative-pg:
enabled: false # Only needed with a custom external postgres DB
serviceTiers:
<Tier1>: # Custom service tier name
- models:
- gpt-oss-120b-8-32-64-128k
queueDepth: 25 # Queries to queue before returning busy
qos: "free" # Usually matches service tier name
maxNewTokens: 8192 # Fills in max_tokens when a request omits it
maxNewTokensHard: 32768 # Ceiling no generation on this tier exceeds
rates:
- allowedRequests: 50
periodSeconds: 60
<Tier2>: # Tier that inherits from another
inherits: <Tier1>
overrides:
- models:
- gpt-oss-120b-8-32-64-128k
queueDepth: 25
qos: "free"
contextGroups: # Per-context-length settings
- contextLengths: ["32k"] # Tighter bounds for 32k requests only
queueDepth: 25
maxNewTokens: 1024
maxNewTokensHard: 4096
rates:
- allowedRequests: 100
periodSeconds: 60
global:
extraEnv: # This sets the node memory limit to 4TB
- name: "DDR_PER_RDU_GB"
value: "256"
このリファレンスでは、例として
cd-dyt-gpt-oss-120b-8-32-64-128k をモデルバンドルに使用しています。実際には、任意のモデルバンドルを使用できます。sambastack-models チャートのインストール時に渡す、別の values ファイルに記述します。models-values.yaml
modelBundleSpecs:
- name: cd-dyt-gpt-oss-120b-8-32-64-128k
modelDeploymentSpecs:
- name: cd-dyt-gpt-oss-120b-8-32-64-128k
groups:
- name: default
minReplicas: 1
qosList: [web, free]
global:
substitutions: # Only needed for NFS or air-gapped customers
gs://<SAMBASTACK_ARTIFACTS_BUCKET>: nfs:///nfsdata
helm upgrade --install sambastack-models の手順については クイックスタート - オンプレミス、デプロイのワークフローについては バンドルのデプロイ をご覧ください。apiVersion: v1
kind: ConfigMap
metadata:
annotations:
serial: "1"
name: sambastack
labels:
sambastack-installer: "true"
data:
sambastack.yaml: |
version: <latest sambastack version>
# API Configuration
gateway:
ingress:
hosts:
- host: api.example.com
tlsSecretName: <name-for-tls>
# UI Configuration
cloud-ui:
ingress:
hosts:
- host: ui.example.com
tlsSecretName: <name-for-tls>
# Auth and Billing Configuration
auth-and-billing:
admins: # Emails granted Admin UI access
- example@example.com
pgSecretName: pg-credentials # Kubernetes secret with PostgreSQL credentials
# Database Configuration
cloudnative-pg:
enabled: false # Disable in-cluster PostgreSQL
# Model Bundle(s) Configuration
models.yaml: |
version: <models chart version> # Optional; defaults to the sambastack.yaml version
modelBundleSpecs:
- name: cd-dyt-gpt-oss-120b-8-32-64-128k
modelDeploymentSpecs:
- name: cd-dyt-gpt-oss-120b-8-32-64-128k
groups:
- name: "default"
minReplicas: 1
qosList:
- "web"
- "free"
最新の SambaStack バージョンについては、SambaStack の担当者にお問い合わせください。
models.yaml セクションのキーは、インストーラーが自動的にデプロイする sambastack-models リリースにそのまま渡されます。モデルチャート をご覧ください。設定パラメータ
gateway
| パラメータ | 型 | 説明 |
|---|---|---|
gateway.replicas | integer | 高可用性のための API ゲートウェイのレプリカ数 |
gateway.auth.enabled | boolean | 組み込みの OIDC 連携を有効化します |
gateway.auth.secretName | string | OIDC 認証情報を含む Kubernetes Secret の名前。デフォルトの認証モードでは空のままにします |
gateway.ingress.hosts[].host | string | API の FQDN (例: api.example.com) |
gateway.ingress.hosts[].tlsSecretName | string | API ホスト用の Kubernetes TLS Secret 名 |
cloud-ui (Web UI)
| パラメータ | 型 | 説明 |
|---|---|---|
cloud-ui.replicas | integer | 高可用性のための UI のレプリカ数 |
cloud-ui.ingress.hosts[].host | string | UI の FQDN (例: ui.example.com) |
cloud-ui.ingress.hosts[].tlsSecretName | string | UI ホスト用の Kubernetes TLS Secret 名 |
auth-and-billing
| パラメータ | 型 | 説明 |
|---|---|---|
auth-and-billing.admins | list | Admin UI にアクセスできるユーザーのメールアドレス |
auth-and-billing.replicas | integer | コアコントロールプレーンサービスのスケーリング |
auth-and-billing.pgSecretName | string | 外部 PostgreSQL の接続情報 (DB_HOST、DB_DATABASE、DB_USER、DB_PASSWD) を base64 エンコードされたデータフィールドとして含む Kubernetes Secret の名前。外部 PostgreSQL を使用する場合に必須 |
db-admin は v2.0.2 で削除されました。 管理者メールアドレスは、現在は auth-and-billing.admins の下に記述します。残されたルートレベルの db-admin: ブロックはエラーにならずに無視されます。Helm のレンダリングもアップグレードも成功しますが、そのリストに記載された誰も Admin UI にアクセスできなくなります。アップグレード時にリストを移動してください。# Before (v1.x) — no longer has any effect
db-admin:
admins:
- abc@example.com
# After (v2.0.2+)
auth-and-billing:
admins:
- abc@example.com
cloudnative-pg
| パラメータ | 型 | 説明 |
|---|---|---|
cloudnative-pg.enabled | boolean | true = クラスター内に PostgreSQL をデプロイ。false = auth-and-billing.pgSecretName を介して外部 PostgreSQL を使用 |
serviceTiers
サービスティアは、ユーザーがアクセスできるモデル、レート制限、キューの動作を制御します。フィールドの全一覧と継承モデルについては、サービスティア をご参照ください。出力トークンの上限はここで設定します。| パラメータ | 型 | 説明 |
|---|---|---|
serviceTiers.<tier>[].maxNewTokens | integer | このティアのリクエストが max_tokens を省略した場合に使用される出力トークン数。最小値 1、デフォルトでは未設定 |
serviceTiers.<tier>[].maxNewTokensHard | integer | クライアントが max_tokens を送信したかどうかにかかわらず、このティアのどの生成も超えられない出力トークン数。最小値 1、デフォルトでは未設定 |
serviceTiers.<tier>[].contextGroups[].contextLengths | list | グループが適用されるコンテキスト長。例: ["32k"]。contextGroups エントリでは必須 |
serviceTiers.<tier>[].contextGroups[].queueDepth | integer | このコンテキストグループのキュー深度。contextGroups エントリでは必須 |
serviceTiers.<tier>[].contextGroups[].maxNewTokens | integer | このコンテキストグループのリクエストについて、ティアの maxNewTokens をオーバーライド |
serviceTiers.<tier>[].contextGroups[].maxNewTokensHard | integer | このコンテキストグループのリクエストについて、ティアの maxNewTokensHard をオーバーライド |
モデル構成
モデル、バンドル、PEF は、sambastack チャートとは別の Helm リリースである モデルチャート (sambastack-models) によってデプロイされます。その設定リファレンスは、上記ページに記載されています。
Hosted のデプロイメントでは、モデルチャートの values は、インストーラー ConfigMap の models.yaml セクションに記述します。sambastack.yaml セクションの中ではなく、その隣に配置します。
| パラメータ | 型 | 説明 |
|---|---|---|
models.yaml | string | モデルチャートの values。sambastack-installer によって sambastack-models リリースにそのまま渡されます。使用できるキーについては、モデルチャート をご覧ください。 |
models.yaml → version | string | sambastack.yaml の version キーとは独立して、sambastack-models チャートのバージョンを固定します。未設定の場合は、そのバージョンが使用されます。 |
models.yaml の version キーを固定する場合は、選択したモデルチャートのバージョンが、お使いのインフラチャートのバージョンと互換であることを確認してください。互換性のあるバージョンの組み合わせは SambaNova が公開しています。sambastack-models のインストール時に渡す別のファイルです。クイックスタート - オンプレミス をご覧ください。
