> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sambanova.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# クイックスタート - ホステッド

本ガイドでは、設定ファイルの準備、認証のセットアップ、デプロイメントの動作確認を通じて、ホステッド版 SambaStack をセットアップし、インスタンスを適切に管理できる状態にするまでの手順を解説します。

## 前提条件

* [**kubectl**](https://kubernetes.io/docs/tasks/tools/) をインストールします

## セットアップ

### 1. kubeconfig 認証情報の設定

クラスターを操作するには、有効な `kubeconfig` 認証情報が必要です。`kubeconfig` ファイルと base64 エンコードされたパスワードは、いずれも **SambaNova から提供されます**。

1. 提供された kubeconfig ファイルを安全な場所に保存します (例: `~/.sambastack/kubeconfig.yaml`)
2. base64 エンコードされたパスワードをデコードし、YAML ファイルに保存します。

   ```shellscript theme={}
   echo <PASSWORD> | base64 -d > <credentials-file-name>.yaml
   ```

   > [!NOTE]
   >
   > パスワードと kubeconfig ファイルはいずれも安全に保管し、権限のないユーザーと共有しないでください。パスワードはクラスターノードへのアクセスに必要です。
3. kubeconfig 変数を設定します:

   ```shellscript theme={}
   export KUBECONFIG=~/path/to/<credentials-file-name>.yaml
   ```
4. 認証情報ファイルは [こちらの例](#kubeconfig-ファイルの構成例) のような構成になっているはずです。

### 2. `sambastack.yaml` の設定とインストール

1. 最小構成の `sambastack.yaml` ファイルを作成します:

   ```yaml theme={}
   apiVersion: v1
   kind: ConfigMap
   metadata:
     annotations:
       serial: "1"
     name: sambastack
     labels:
       sambastack-installer: "true"
   data:
     sambastack.yaml: |                        # Infra chart configuration values
       version: <NEW_VERSION>
       auth-and-billing:
         admins:
           - abc@example.com
     models.yaml: |                            # Models chart configuration values
       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"
   ```

   > [!NOTE]
   >
   > 完全な例は [SambaStack.yaml リファレンス](/docs/ja/v2.1.1/sambastack/resources/sambastack-yaml.md) をご覧ください。

   > [!NOTE]
   >
   > version フィールドは、SambaNova の担当者から提供されたバージョンに合わせて更新してください。

   > [!NOTE]
   >
   > バンドルは `models.yaml` セクションで設定します。インストーラーはこのセクションを `sambastack-models` リリースにそのまま渡します。使用できるキーについては、[モデルチャート](/docs/ja/v2.1.1/sambastack/service-administration/model-deployment/models-chart.md) をご覧ください。

   > [!WARNING]
   >
   > `models.yaml` の `version` キーは任意で、未設定の場合は `sambastack.yaml` の `version` が使用されます。バージョンを固定する場合は、モデルチャートのバージョンが、お使いのインフラチャートのバージョンと互換であることを確認してください。互換性のあるバージョンの組み合わせは SambaNova が公開しています。

   インストーラーは、`sambastack-base`、`sambastack`、[`sambastack-models`](/docs/ja/v2.1.1/sambastack/service-administration/model-deployment/models-chart) の 3 つの Helm リリースを順番にデプロイし、`models.yaml` セクションを `sambastack-models` リリースにそのまま渡します。追加の設定は不要です。

2. ファイルを適用します

   ```shellscript theme={}
   kubectl apply -f <path-to-sambastack.yaml>
   ```

   成功すると、次のように表示されます

   ```
   configmap/sambastack configured
   ```

3. 以下のコマンドを実行し、期待どおりの出力が得られることを確認します。\
   \
   次のコマンドでインストーラーのログを確認し、UI/API のドメイン名を取得します:

   ```shellscript theme={}
   kubectl -n sambastack-installer logs -l sambanova.ai/app=sambastack-installer -f
   ```

   期待される応答:

   ```
   NAME: sambastack
   LAST DEPLOYED: Thu Sep 11 10:18:54 2025
   NAMESPACE: default
   STATUS: deployed
   REVISION: 7
   TEST SUITE: None
   [INFO] (helm_upgrade_install) Upgraded/installed sambastack release
   [INFO] (configure_default_ingress) UI Domain: ui-domain-example.sambanova.ai
   [INFO] (configure_default_ingress) API Domain: api-domain-example.sambanova.ai
   ```

   \
   クラスターの Pod が稼働していることを確認します:

   ```shellscript theme={}
   kubectl get pods
   ```

   期待される応答:

   ```
   NAME                                                     READY   STATUS      RESTARTS       AGE
   alertmanager-sambastack-kube-prometheus-alertmanager-0   2/2     Running     0               1d
   alertmanager-sambastack-kube-prometheus-alertmanager-1   2/2     Running     0               1d
   auth-and-billing-6c75dd9459-pdfd4                        1/1     Running     0               1d
   auth-and-billing-6c75dd9459-vpfrz                        1/1     Running     0               1d
   cloud-ui-7646779bcb-mq295                                1/1     Running     0               1d
   gateway-95956579b-4gqsl                                  4/4     Running     0               1d
   gateway-95956579b-bjltl                                  4/4     Running     0               1d
   inf-cd-dyt-gpt-oss-120b-8-32-64-128k-cache-0                    1/1     Running     0               1d
   inf-cd-dyt-gpt-oss-120b-8-32-64-128k-q-default-n-0              2/2     Running     1 (71d ago)     1d
   inf-operator-0                                           1/1     Running     0               1d
   inference-router-6f965555d8-wqf7t                        1/1     Running     0               1d
   keycloak-0                                               1/1     Running     0               1d
   keycloak-operator-8dc4bc4d9-gj2m9                        1/1     Running     5 (109d ago)    1d
   opensearch-cluster-master-0                              1/1     Running     0               1d
   opensearch-index-mgmt-job-skzw9                          0/1     Completed   0               1d
   prometheus-sambastack-kube-prometheus-prometheus-0       2/2     Running     2 (109d ago)    1d
   prometheus-sambastack-kube-prometheus-prometheus-1       2/2     Running     2 (109d ago)    1d
   sambastack-cloudnative-pg-5bfd776f85-lwb74               1/1     Running     7 (25d ago)     1d
   sambastack-fluent-bit-8vf55                              1/1     Running     0               1d
   sambastack-global-queue-redis-master-0                   2/2     Running     0               1d
   sambastack-grafana-7b6b8c899b-8r6gc                      3/3     Running     0               1d
   sambastack-kube-prometheus-operator-65dddbc87f-2k84c     1/1     Running     0               1d
   sambastack-kube-state-metrics-6fffcb5987-v6pfx           1/1     Running     0               1d
   sambastack-localpv-provisioner-64f9fd84cd-h72zc          1/1     Running     7 (25d ago)     1d
   sambastack-opensearch-dashboards-787695c54d-zgr4p        1/1     Running     0               1d
   sambastack-postgres-1                                    1/1     Running     0               1d
   sambastack-postgres-2                                    1/1     Running     0               1d
   sambastack-postgres-3                                    1/1     Running     0               1d
   sambastack-prometheus-node-exporter-fwzr6                1/1     Running     0               1d
   sambastack-response-queue-redis-master-0                 2/2     Running     0               1d
   sn-legacy-exporter-mlqg5                                 2/2     Running     0               1d
   ```

   > [!NOTE]
   >
   > インストーラーは、インストール全体に対して 1 行のログしか出力しません。各リリースが正常にデプロイされたことを確認するには、リリースを一覧表示します。
   >
   > ```shellscript theme={}
   > helm list -n sambastack
   > ```
   >
   > 3 つのリリースがすべて `deployed` ステータスで表示されるはずです。
   >
   > ```text theme={}
   > NAME                    NAMESPACE       REVISION        UPDATED                                 STATUS          CHART                  APP VERSION
   > sambastack              default         8               2026-08-03 23:04:02.420712843 +0000 UTC deployed        sambastack-2.0.2
   > sambastack-base         default         228             2026-08-03 23:03:57.430800565 +0000 UTC deployed        sambastack-base-2.0.2
   > sambastack-models       default         8               2026-08-03 23:04:26.348617238 +0000 UTC deployed        sambastack-models-2.0.2
   > ```

   > [!NOTE]
   >
   > すべての Pod が目的の `Running` 状態になるまで、通常 5〜10 分程度かかります。

   > [!NOTE]
   >
   > 詳細は [**Pod リファレンス**](/docs/ja/v2.1.1/sambastack/resources/pods-reference.md) の表をご覧ください。

### 3. 認証のセットアップとユーザー管理

ホステッド版 SambaStack では、認証用にデフォルトの Keycloak インスタンスが SambaNova から提供されます。カスタムの OIDC 設定を行いたい場合は、[認証ページ](/docs/ja/v2.1.1/sambastack/service-administration/platform-admin/authentication.md) をご参照ください。

#### **主な考慮事項とよくある問題**

* **メールアドレスは必須:** メールアドレスのないユーザーはログインできません。
* **ユーザー名は一意に:** ユーザー名の重複は許可されません。ユーザー名とメールアドレスは揃えてください。
* **恒久的なパスワード:** ユーザーによるリセットを意図する場合を除き、初期パスワードを一時パスワードにしないでください。
* **ブラウザのヒント:** ポートフォワード時のセッション Cookie の問題を避けるため、Keycloak の管理 UI には Chrome を使用してください。

1. 管理者の認証情報を取得します:

   ```shellscript theme={}
   kubectl get secret keycloak-initial-admin -o go-template='username: {{.data.username | base64decode}} password: {{.data.password | base64decode}}'
   ```

   期待される出力:

   ```
   username: admin
   password: <random-password>
   ```
2. Keycloak サービスをポートフォワードします

   ```shellscript theme={}
   kubectl port-forward svc/keycloak-service 8080
   ```
3. `http://localhost:8080` にアクセスし、取得した認証情報でログインします。
4. [**Keycloak Server Administration Guide**](https://www.keycloak.org/docs/latest/server_admin/index.html#proc-creating-user_server_administration_guide)（英語）に従って、ユーザーを管理します。

### 4. SambaStack UI へのログインと API キーの作成

1. インストーラーのログから UI ドメインを取得します (ステップ 2.3 参照)

   ![インストールガイド 1](https://mintcdn.com/sambanova-systems/emEy6D0rW6i9bD6c/images/docs/admin/install-guide-1.png?fit=max\&auto=format\&n=emEy6D0rW6i9bD6c\&q=85\&s=80ee76c964cde8ee7eac344c225747cf)

   > [!NOTE]
   >
   > 互換性の問題を避けるため、UI ドメインには Google Chrome でアクセスしてください。
2. 認証フローに従って、ご自身の認証情報でログインします。

   ![インストールガイド 2](https://mintcdn.com/sambanova-systems/emEy6D0rW6i9bD6c/images/docs/admin/install-guide-2.png?fit=max\&auto=format\&n=emEy6D0rW6i9bD6c\&q=85\&s=e5d9545ad967d7de08f40ceb0c256309)
3. **API Keys** ページに移動して API キーを作成し、安全に保管してください。

### 5. デプロイ済みモデルバンドルへのクエリ

1. API キーを設定します:

   ```shellscript theme={}
   export SAMBANOVA_API_KEY='<API key from step 4.3>'
   ```
2. cURL または Python スクリプトのいずれかで、デプロイ済みのモデルバンドルに対してテストクエリを実行します:

   **cURL**

   正しいドメインを指定して、次の cURL コマンドを実行します:

   ```shellscript theme={}
   curl https://<API DOMAIN from step 2.3>/v1/chat/completions \
     -H "Authorization: Bearer $SAMBANOVA_API_KEY" \
     -H "Content-Type: application/json" \
     -d '{
       "model": "gpt-oss-120b",
       "messages": [
         {"role": "system", "content": "You are a concise assistant."},
         {"role": "user", "content": "Say hi in one sentence and comment on the weather."}
       ],
       "temperature": 0.2,
       "max_tokens": 128,
       "stream": false
     }'
   ```

   応答は次のようになります。

   ```json theme={}
   {
     "choices": [
       {
         "finish_reason": "stop",
         "index": 0,
         "logprobs": null,
         "message": {
           "content": "Hi there, it's a sunny day today!",
   		"reasoning": "The user wants a short response: \"Say hi in one sentence and comment on the weather.\" So we need to produce a single sentence that says hi and comments on the weather. Must be concise. So something like \"Hi there! It's a sunny day today.\" That's two sentences. Need one sentence. Could be \"Hi there–it's a sunny day today!\" That's one sentence with dash. Or \"Hi there, it's a sunny day today!\" That's one sentence with comma. That works. Provide that.",
           "role": "assistant"
         }
       }
     ],
     "created": 1770927918,
     "id": "c754b468-05e1-4fe4-8a28-f51ecc74f4f2",
     "model": "gpt-oss-120b",
     "object": "chat.completion",
     "system_fingerprint": "fastcoe",
     "usage": {
       "completion_tokens": 121,
   	"completion_tokens_after_first_per_sec": 500.6027126944832,
       "completion_tokens_after_first_per_sec_first_ten": 502.05732024083596,
       "completion_tokens_after_first_per_sec_graph": 502.05732024083596,
       "completion_tokens_per_sec": 413.56225915094006,
       "end_time": 1770927918.2348678,
       "is_last_response": true,
       "prompt_tokens": 91,
       "prompt_tokens_details": {
         "cached_tokens": 0
       },
       "start_time": 1770927917.942288,
       "stop_reason": "stop",
       "time_to_first_token": 0.05286884307861328,
       "time_to_first_token_graph": 0.05082893371582031,
       "total_latency": 0.29257988929748535,
       "total_tokens": 212,
       "total_tokens_per_sec": 724.5884209917298
     }
   }
   ```

   **Python**

   次のプログラムを実行する Python スクリプトを作成します。API ドメイン名は正しい値に置き換えてください。

   ```python theme={}
   import os
   from sambanova import SambaNova

   api_key = os.environ.get("SAMBANOVA_API_KEY")

   client = SambaNova(
       api_key=api_key,
       base_url="https://<API DOMAIN from step 2.3>/v1",
   )

   try:
       response = client.chat.completions.create(
           model="gpt-oss-120b",
           messages=[
               {"role": "system", "content": "You are a concise assistant."},
               {"role": "user", "content": "Say hi in one sentence and comment on the weather."}
           ],
           temperature=0.2,
       )
       print(response.choices[0].message.content)

   except Exception as e:
       print(f"An error occurred: {e}")
   ```

   応答は次のようになります。

   ```
   Hi, it's a sunny day today!
   ```

## 次のステップ

おめでとうございます。これで SambaStack クラスターが基本的な稼働状態になりました。ここから先に何を設定するかは、目的によって異なります。次に設定できる一般的な構成は以下のとおりです。

* [新しいモデルバンドルのデプロイ](/docs/ja/v2.1.1/sambastack/service-administration/model-deployment/deploying-models-and-bundles/deploy-a-bundle.md)
* [OIDC 認証のカスタマイズ](/docs/ja/v2.1.1/sambastack/service-administration/platform-admin/authentication.md)
* [外部 PostgreSQL データベースの設定](/docs/ja/v2.1.1/sambastack/service-administration/platform-admin/custom-database.md)

## 付録

### kubeconfig ファイルの構成例

次のサンプル kubeconfig ファイルは、Kubernetes の認証とアクセスのために、クラスター、ユーザー、コンテキストがどのように定義されるかを示しています。

```shellscript theme={}
    apiVersion: v1
    kind: Config
    clusters:
      - name: default
        cluster:
          certificate-authority-data: <redacted>
          server: https://<cluster-endpoint>
    users:
      - name: sambastack-admin
        user:
          token: <redacted>
    contexts:
      - name: default
        context:
          cluster: default
          user: sambastack-admin
          namespace: default
    current-context: default
```

### kubeconfig のフィールド

| **キーワード** | **説明** |
| :- | :- |
| apiVersion / kind | Kubernetes 設定の種類を定義します。 |
| clusters | クラスター名、エンドポイント、認証局の情報を含みます。 |
| users | ユーザーとその認証方式 (例: トークン) を指定します。 |
| contexts | ユーザーをクラスターに対応付けます。デフォルトの名前空間を含む場合があります。 |
| current-context | `kubectl` が使用するアクティブなコンテキストです。 |

### コマンドリファレンス

| タスク | コマンド例 |
| :- | :- |
| kubeconfig の設定 | `export KUBECONFIG=<Path for kubeconfig file>` |
| インストーラーログの確認とドメイン名の取得 | `kubectl -n sambastack-installer logs -l sambanova.ai/app=sambastack-installer -f` |
| クラスター Pod の確認 | `kubectl get pods` |
| ノードの一覧表示 | `kubectl get nodes` |
| マニフェストの適用/更新 | `kubectl apply -f <sambastack.yaml>` |
| 適用済みマニフェストの表示 | `kubectl get configmap sambastack -o yaml` |
| Keycloak 管理者認証情報の取得 | `kubectl get secret keycloak-initial-admin -o go-template='username: {{.data.username \| base64decode}} password: {{.data.password \| base64decode}}'` |
| 管理者として Keycloak にアクセス | `kubectl port-forward svc/keycloak-service 8080` |
