ローカル SSD

このページでは、Kubernetes でのローカル SSD サポートの概要と、Kubernetes Engine でローカル SSD を使用する方法について説明します。

概要

ローカル SSD は、クラスタ内のすべてのノードに高性能な一時ストレージを提供します。ローカル SSD は、標準的なディスクより高いスループットと低いレイテンシを実現します。ローカル キャッシングとローカル処理がローカル SSD に適切なワークロードです。

クラスタのマシンタイプ制限とプロジェクトの割り当ての枠内で、ローカル SSD を使用したノードプールを作成できます。

制限事項

ローカル SSD を使用する場合は、次の制限事項に注意してください。

  • ローカル SSD はノードのホスト仮想マシン インスタンスに物理的に接続されているため、それらに保存されているデータはそのノード上にのみ存在します。ディスクに保存されているデータはローカルなため、そのデータを使用できない場合でもアプリケーションが回復できることを確認してください。
  • ローカル SSD に書き込むポッドは、そのノードから別のノードに再スケジュールされた場合に、ディスク上に保存されたデータにアクセスできなくなる可能性があります。加えて、ノードをアップグレードすると、データが消去されます。
  • 既存のノードプールにローカル SSD を追加することはできません。

ローカル SSD を使用する

次のセクションで、Kubernetes Engine でローカル SSD を使用する方法について説明します。

Console

GCP Console の [Kubernetes Engine] メニューから、ローカル SSD を使用したクラスタまたはノードプールを作成できます。

デフォルト プールがローカル SSD ディスクを使用するクラスタを作成する手順は次のとおりです。

  1. GCP Console で [Kubernetes Engine] メニューにアクセスします。

    [Kubernetes Engine] メニューにアクセス

  2. [クラスタを作成] をクリックします。

  3. 必要に応じてクラスタを設定します。その後で、[ローカル SSD ディスク(ノード単位)] フィールドに、必要な SSD の数を絶対数で入力します。
  4. [作成] をクリックします。

既存のクラスタでローカル SSD ディスクを使用したノードプールを作成する手順は次のとおりです。

  1. GCP Console で [Kubernetes Engine] メニューにアクセスします。

    [Kubernetes Engine] メニューにアクセス

  2. 目的のクラスタを選択します。

  3. [編集] をクリックします。
  4. [ノードプール] メニューから、[ノードプールを追加] をクリックします。
  5. 必要に応じてノードプールを設定します。その後で、[ローカル SSD ディスク(ノード単位)] フィールドに、必要な SSD の数を絶対数で入力します。
  6. [保存] をクリックします。

gcloud

gcloud を使用してローカル SSD を使用したクラスタまたはノードプールを作成するには、--local-ssd count フラグを指定します。

デフォルト プールがローカル SSD ディスクを使用するクラスタを作成するコマンドは次のとおりです。

gcloud container clusters create [CLUSTER_NAME] --local-ssd-count [NUMBER_OF_DISKS]

ここで、[NUMBER_OF_DISKS] は必要なディスクの数(絶対数)です。

既存のクラスタでローカル SSD ディスクを使用したノードプールを作成する手順は次のとおりです。

gcloud beta container node-pools create [POOL_NAME] --cluster [CLUSTER_NAME] \
--local-ssd-count [NUMBER_OF_DISKS]

--local-ssd-count には、ノードごとに作成するローカル SSD の数を指定します。最大数は、マシンタイプとリージョンによって異なります(ローカル SSD をご覧ください)。ノードが作成されると、ローカル SSD が自動的にフォーマットされ、ホスト OS のサブディレクトリ /mnt/disks/ にマウントされます(各ローカル SSD は「ssd#」ディレクトリにマウントされます)。

たとえば、3 つのローカル SSD を使用するノードプールを作成する場合、ホスト OS はディスクを /mnt/disks/ssd0/mnt/disks/ssd1/mnt/disks/ssd2 にマウントします。Kubernetes コンテナは、オブジェクトの構成ファイルで定義されている hostPath パラメータに従ってディスクにアクセスします。

ローカル SSD /mnt/disks/ssd0 を参照するポッド構成ファイルの例を次に示します。

apiVersion: v1
kind: Pod
metadata:
  name: "test-ssd"
spec:
  containers:
  - name: "shell"
    image: "ubuntu:14.04"
    command: ["/bin/sh", "-c"]
    args: ["echo 'hello world' > /test-ssd/test.txt && sleep 1 && cat /test-ssd/test.txt"]
    volumeMounts:
    - mountPath: "/test-ssd/"
      name: "test-ssd"
  volumes:
  - name: "test-ssd"
    hostPath:
      path: "/mnt/disks/ssd0"
  nodeSelector:
    cloud.google.com/gke-local-ssd: "true"

次のステップ

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...