ストレージクラス - Amazon EKS

英語の翻訳が提供されている場合で、内容が矛盾する場合には、英語版がオリジナルとして取り扱われます。翻訳は機械翻訳により提供されています。

ストレージクラス

Kubernetes バージョン 1.11 以前に作成された Amazon EKS クラスターは、どのストレージクラスにも作成されませんでした。使用するクラスターのストレージクラスを定義する必要があります。また、永続的なボリューム要求に対してデフォルトのストレージクラスを定義する必要があります。詳細については、Kubernetes ドキュメントの「ストレージクラス」を参照してください。

注記

このトピックでは、インツリー Amazon EBS ストレージプロビジョナーを使用します。Kubernetes 1.14 以降のクラスターでは 、ストレージの管理に Amazon EBS CSI ドライバー を使用できます。既存のインツリー Amazon EBS プラグインは引き続きサポートされていますが、CSI ドライバーを使用することで、Kubernetes アップストリームリリースサイクルと CSI ドライバーのリリースサイクルを分離することができます。最終的に、インツリープラグインは廃止され、CSI ドライバーが優先されます。

Amazon EKS クラスターに AWS ストレージクラスを作成するには

  1. ストレージクラスに AWS ストレージクラスのマニフェストファイルを作成します。以下の gp2-storage-class.yaml の例では、Amazon EBS gp2 ボリュームタイプを使用する gp2 というストレージクラスを定義しています。

    AWS ストレージクラスで使用できるオプションの詳細については、Kubernetes のドキュメントの「AWS EBS」を参照してください。

    kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: gp2 annotations: storageclass.kubernetes.io/is-default-class: "true" provisioner: kubernetes.io/aws-ebs parameters: type: gp2 fsType: ext4
  2. 使用 kubectl マニフェストファイルからストレージクラスを作成します。

    kubectl create -f gp2-storage-class.yaml

    出力

    storageclass "gp2" created

デフォルトストレージクラスを定義するには

  1. クラスターの既存のストレージクラスを一覧表示します。デフォルトとして設定する前に、ストレージクラスを定義する必要があります。

    kubectl get storageclass

    出力

    NAME PROVISIONER AGE gp2 kubernetes.io/aws-ebs 8m
  2. ストレージクラスを選択して、storageclass.kubernetes.io/is-default-class=true 注釈を設定することで、デフォルトに設定できます。

    kubectl patch storageclass gp2 -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'

    出力

    storageclass "gp2" patched
  3. このストレージクラスがデフォルトとして設定されていることを確認します。

    kubectl get storageclass

    出力

    gp2 (default) kubernetes.io/aws-ebs 12m