第2章 CSIDriver [storage.k8s.io/v1]


説明
CSIDriver は、クラスターにデプロイされた Container Storage Interface (CSI) ボリュームドライバーに関する情報をキャプチャーします。Kubernetes アタッチデタッチコントローラーは、このオブジェクトを使用して、アタッチが必要かどうかを判断します。Kubelet はこのオブジェクトを使用して、Pod 情報をマウントで渡す必要があるかどうかを判断します。CSIDriver オブジェクトには namespace がありません。
タイプ
object
必須
  • spec

2.1. 仕様

プロパティータイプ説明

apiVersion

string

APIVersion はオブジェクトのこの表現のバージョンスキーマを定義します。サーバーは認識されたスキーマを最新の内部値に変換し、認識されない値は拒否することがあります。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources を参照してください。

kind

string

kind はこのオブジェクトが表す REST リソースを表す文字列の値です。サーバーはクライアントが要求を送信するエンドポイントからこれを推測できることがあります。これを更新することはできません。CamelCase を使用します。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds を参照してください。

metadata

ObjectMeta

標準オブジェクトのメタデータ。metadata.Name は、このオブジェクトが参照する CSI ドライバーの名前を示します。そのドライバーの CSI GetPluginName() 呼び出しによって返される名前と同じである必要があります。ドライバー名は 63 文字以下で、ダッシュ (-)、ドット (.)、およびその間に英数字を含む英数字 ([a-z0-9A-Z]) で開始および終了する必要があります。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata を参照してください。

spec

object

CSIDriverSpec は、CSIDriver の仕様です。

2.1.1. .spec

説明
CSIDriverSpec は、CSIDriver の仕様です。
タイプ
object
プロパティータイプ説明

attachRequired

boolean

attachRequired は、この CSI ボリュームドライバーにアタッチ操作が必要であることを示し (CSI ControllerPublishVolume () メソッドを実装しているため)、Kubernetes アタッチデタッチコントローラーは、volumeattachment ステータスをチェックし、ボリュームがアタッチされるまで待機してからに進む前に、アタッチデタッチコントローラーを呼び出す必要があります。取り付け。CSI 外部アタッチメントは CSI ボリュームドライバーと調整し、接続操作が完了すると volumeattachment ステータスを更新します。CSIDriverRegistry 機能ゲートが有効で、値が false に指定されている場合、接続操作はスキップされます。それ以外の場合は、アタッチ操作が呼び出されます。

このフィールドは不変です。

fsGroupPolicy

string

fsGroupPolicy は、基になるボリュームがマウント前のボリュームの所有権と権限の変更をサポートするかどうかを定義します。詳細は、特定の FSGroupPolicy 値を参照してください。

このフィールドは不変です。

デフォルトは ReadWriteOnceWithFSType です。これにより、各ボリュームが調べられ、Kubernetes がボリュームの所有権および権限を変更する必要があるかどうかが判断されます。デフォルトのポリシーでは、定義された fsGroup は、fstype が定義されていて、ボリュームのアクセスモードに ReadWriteOnce が含まれている場合にのみ適用されます。

podInfoOnMount

boolean

true に設定すると、podInfoOnMount は、この CSI ボリュームドライバーがマウント操作中に追加の Pod 情報 (podName、podUID など) を必要とすることを示します。false に設定すると、Pod 情報はマウント時に渡されません。デフォルトは false です。

CSI ドライバーは、ドライバーデプロイメントの一部として podInfoOnMount を指定します。true の場合、Kubelet は CSI NodePublishVolume () 呼び出しで VolumeContext として Pod 情報を渡します。CSI ドライバーは、VolumeContext として渡された情報の解析および検証を担当します。

podInfoOnMount が true に設定されていると、次の VolumeContext が渡されます。このリストは大きくなる可能性がありますが、接頭辞が使用されます。"csi.storage.k8s.io/pod.name": pod.Name "csi.storage.k8s.io/pod.namespace": pod.Namespace "csi.storage.k8s.io/pod.uid": string(pod.UID) "csi.storage.k8s.io/ephemeral": ボリュームが CSIVolumeSource によって定義されたエフェメラルインラインボリュームの場合は "true"、それ以外の場合は "false" です。

"csi.storage.k8s.io/ephemeral" は Kubernetes1.16 の新機能です。これは、"Persistent" および "Ephemeral" の両方の VolumeLifecycleMode をサポートするドライバーにのみ必要です。他のドライバーは、Pod 情報を無効のままにするか、このフィールドを無視することができます。Kubernetes 1.15 はこのフィールドをサポートしていないため、ドライバーはそのようなクラスターにデプロイされた場合に 1 つのモードしかサポートできず、デプロイメントによって、たとえばドライバーのコマンドラインパラメーターを介してどのモードであるかが決定されます。

このフィールドは不変です。

requiresRepublish

boolean

requiresRepublish は、CSI ドライバーが、マウントされたボリュームで発生する可能性のある変更を反映するために NodePublishVolume が定期的に呼び出されることを望んでいることを示します。このフィールドのデフォルトは false です。

注: 最初の NodePublishVolume 呼び出しが成功した後、NodePublishVolume への後続の呼び出しは、ボリュームの内容のみを更新する必要があります。新しいマウントポイントは、実行中のコンテナーには表示されません。

seLinuxMount

boolean

seLinuxMount は、CSI ドライバーが "-o context" マウントオプションをサポートするかどうかを指定します。

"true" の場合、CSI ドライバーは、この CSI ドライバーが提供するすべてのボリュームを、異なる -o context オプションを使用して個別にマウントできることを保証する必要があります。これは、ブロックデバイス上のファイルシステムまたは独立した共有ボリュームとしてボリュームを提供するストレージバックエンドでは一般的です。Kubernetes は、SELinux コンテキストを明示的に設定した Pod で使用される ReadWriteOncePod ボリュームをマウントするときに、"-o context=xyz" マウントオプションを指定して NodeStage/NodePublish を呼び出します。今後は、他のボリューム AccessModes に拡張される可能性があります。いずれの場合も、Kubernetes は、ボリュームが単一の SELinux コンテキストでのみマウントされるようにします。

"false" の場合、Kubernetes は特別な SELinux マウントオプションをドライバーに渡しません。これは、サイズの大きい共有ファイルシステムのサブディレクトリーを表すボリュームでは一般的です。

デフォルトは "false" です。

storageCapacity

boolean

true に設定されている場合、storageCapacity は、容量情報を使用して CSIStorageCapacity オブジェクトを作成することにより、CSI ボリュームドライバーが Pod スケジューリングでドライバーデプロイメントが報告するストレージ容量を考慮することを望んでいることを示します。

ドライバーをデプロイすると、チェックをすぐに有効にできます。その場合、遅延バインディングを使用した新しいボリュームのプロビジョニングは、ドライバーのデプロイメントで適切な CSIStorageCapacity オブジェクトが公開されるまで一時停止します。

または、フィールドを unset または false にしてドライバーをデプロイし、後でストレージ容量情報が公開されたときにドライバーを反転させることもできます。

このフィールドは Kubernetes ⇐ 1.22 では不変でしたが、現在は変更可能です。

tokenRequests

array

tokenRequests は、CSI ドライバーが必要な認証を行うためにボリュームをマウントしている Pod のサービスアカウントトークンを必要としていることを示します。Kubelet は、CSI NodePublishVolume 呼び出しで VolumeContext のトークンを渡します。CSI ドライバーは、次の VolumeContext: "csi.storage.k8s.io/serviceAccount.tokens": { "<audience>": { "token": <token>, "expirationTimestamp": <expiration timestamp in RFC3339>, }, …​ } を解析して検証する必要があります。

注: 各 TokenRequest のオーディエンスは異なる必要があり、最大で 1 つのトークンが空の文字列です。有効期限後に新しいトークンを受け取るには、RequiresRepublish を使用して NodePublishVolume を定期的にトリガーできます。

tokenRequests[]

object

TokenRequest には、サービスアカウントトークンのパラメーターが含まれています。

volumeLifecycleModes

array (string)

volumeLifecycleModes は、この CSI ボリュームドライバーがサポートするボリュームの種類を定義します。リストが空の場合のデフォルトは "Persistent" です。これは、CSI 仕様で定義され、通常の PV/PVC メカニズムを介して Kubernetes に実装される使用法です。

もう 1 つのモードは "Ephemeral" です。このモードでは、ボリュームは CSIVolumeSource を使用して Pod 仕様内でインラインで定義され、そのライフサイクルはその Pod のライフサイクルに関連付けられます。ドライバーは、そのようなボリュームに対して NodePublishVolume 呼び出しを取得するだけなので、これを認識している必要があります。

このモードの実装の詳細は、https://kubernetes-csi.github.io/docs/ephemeral-local-volumes.html を参照してください。ドライバーはこれらのモードの 1 つ以上をサポートでき、将来さらにモードが追加される可能性があります。

このフィールドはベータ版です。このフィールドは不変です。

2.1.2. .spec.tokenRequests

説明

tokenRequests は、CSI ドライバーが必要な認証を行うためにボリュームをマウントしている Pod のサービスアカウントトークンを必要としていることを示します。Kubelet は、CSI NodePublishVolume 呼び出しで VolumeContext のトークンを渡します。CSI ドライバーは、次の VolumeContext: "csi.storage.k8s.io/serviceAccount.tokens": { "<audience>": { "token": <token>, "expirationTimestamp": <expiration timestamp in RFC3339>, }, …​ } を解析して検証する必要があります。

注: 各 TokenRequest のオーディエンスは異なる必要があり、最大で 1 つのトークンが空の文字列です。有効期限後に新しいトークンを受け取るには、RequiresRepublish を使用して NodePublishVolume を定期的にトリガーできます。

タイプ
array

2.1.3. .spec.tokenRequests[]

説明
TokenRequest には、サービスアカウントトークンのパラメーターが含まれています。
タイプ
object
必須
  • audience
プロパティータイプ説明

audience

string

audience は、"TokenRequestSpec" のトークンの対象オーディエンスです。デフォルトでは、kube apiserver のオーディエンスになります。

expirationSeconds

integer

expirationSeconds は、"TokenRequestSpec" 内のトークンの有効期間です。"TokenRequestSpec" の "ExpirationSeconds" と同じデフォルト値があります。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.