5.2. CSI インラインの一時ボリューム


Container Storage Interface (CSI) のインライン一時ボリュームを使用すると、Pod のデプロイ時にインラインの一時ボリュームを作成し、Pod の破棄時にそれらを削除する Pod 仕様を定義できます。

この機能は、サポートされている Container Storage Interface (CSI) ドライバーでのみ利用できます。

  • Shared Resource CSI ドライバー
  • Azure File CSI ドライバー
  • Secrets Store CSI ドライバー

5.2.1. CSI インラインの一時ボリュームの概要

従来は、Container Storage Interface (CSI) ドライバーでサポートされるボリュームは PersistentVolume および PersistentVolumeClaim オブジェクトの組み合わせでのみ使用できます。

この機能により、PersistentVolume オブジェクトではなく、Pod 仕様に CSI ボリュームを直接指定できます。インラインボリュームは一時的なボリュームであり、Pod の再起動後は永続化されません。

5.2.1.1. サポートの制限

重要

Shared Resource CSI Driver 機能は、Red Hat OpenShift 1.1 のビルド で一般提供されました。この機能は OpenShift Container Platform では非推奨になりました。この機能を使用するには、Builds for Red Hat OpenShift 1.1 以降のバージョンを使用していることを確認してください。

デフォルトで、OpenShift Container Platform は以下の制限下で CSI インラインの一時ボリュームのクローン作成をサポートします。

  • サポートは CSI ドライバーでのみ利用可能です。インツリーおよび FlexVolumes はサポートされません。
  • Shared Resource CSI Driver は、OpenShift Container Platform のテクノロジープレビュー機能として、複数の namespace にわたる Secrets または ConfigMaps にアクセスするためにのみ、インライン一時ボリュームの使用をサポートします。
  • コミュニティーまたはストレージベンダーは、これらのボリュームをサポートする他の CSI ドライバーを提供します。CSI ドライバーのプロバイダーが提供するインストール手順に従います。

CSI ドライバーは、Ephemeral 機能を含む、インラインボリューム機能を実装していない可能性があります。詳細は、CSI ドライバーのドキュメントを参照してください。

5.2.2. CSI Volume Admission プラグイン

Container Storage Interface (CSI) Volume Admission プラグインを使用すると、Pod アドミッション時に CSI 一時ボリュームをプロビジョニングできる個別の CSI ドライバーの使用を制限できます。管理者は csi-ephemeral-volume-profile ラベルを追加できます。このラベルは Admission プラグインによって検査され、施行、警告、監査の決定に使用されます。

5.2.2.1. 概要

CSI Volume Admission プラグインを使用するには、管理者は security.openshift.io/csi-ephemeral-volume-profile ラベルを CSIDriver オブジェクトに追加します。これは、CSI 一時ボリュームを提供するために使用される CSI ドライバーの有効な Pod セキュリティープロファイルを次のように宣言します。次の例に示されています。

kind: CSIDriver
metadata:
  name: csi.mydriver.company.org
  labels:
    security.openshift.io/csi-ephemeral-volume-profile: restricted 1
1
csi-ephemeral-volume-profile ラベルが "restricted" に設定された CSI ドライバーオブジェクト YAML ファイル

この “有効なプロファイル” は、Pod の namespace が Pod のセキュリティー標準によって管理されている場合に、Pod が CSI ドライバーを使用して CSI 一時ボリュームをマウントできることを伝えます。

CSI Volume Admission プラグインは、Pod の作成時に Pod ボリュームを検査します。CSI ボリュームを使用する既存の Pod は影響を受けません。Pod がコンテナーストレージインターフェイス (CSI) ボリュームを使用する場合、プラグインは CSIDriver オブジェクトを検索して csi-ephemeral-volume-profile ラベルを検査し、そのラベルの値を適用、警告、および監査の決定に使用します。

5.2.2.2. Pod セキュリティープロファイルの適用

CSI ドライバーに csi-ephemeral-volume-profile ラベルが付いている場合、CSI ドライバーを使用して CSI 一時ボリュームをマウントする Pod は、同等以上のアクセス許可の Pod セキュリティー標準を強制する namespace で実行する必要があります。namespace がより制限的な標準を適用する場合、CSI Volume Admission プラグインは受付を拒否します。以下の表は、指定のラベル値に対するさまざまな Pod セキュリティープロファイルの適用動作を説明しています。

表5.2 Pod セキュリティープロファイルの適用
Pod セキュリティープロファイルドライバーラベル: restrictedドライバーラベル: baselineドライバーラベル: privileged

Restricted

Allowed

Denied

Denied

Baseline

Allowed

Allowed

Denied

Privileged

Allowed

Allowed

Allowed

5.2.2.3. Pod セキュリティープロファイルの警告

CSI Volume Admission プラグインは、CSI ドライバーの有効なプロファイルが Pod namespace の Pod セキュリティー警告プロファイルよりも許容度が高い場合に警告できます。次の表は、指定されたラベル値のさまざまな Pod セキュリティープロファイルで警告がいつ発生するかを示しています。

表5.3 Pod セキュリティープロファイルの警告
Pod セキュリティープロファイルドライバーラベル: restrictedドライバーラベル: baselineドライバーラベル: privileged

Restricted

No warning

Warning

Warning

Baseline

No warning

No warning

Warning

Privileged

No warning

No warning

No warning

5.2.2.4. Pod セキュリティープロファイル監査

CSI ボリュームの受付プラグインは、CSI ドライバーの有効なプロファイルが Pod namespace の Pod セキュリティー監査プロファイルよりも許容されている場合に、監査アノテーションを Pod に適用できます。以下の表は、指定のラベル値のさまざまな Pod セキュリティープロファイルに適用される監査アノテーションを示しています。

表5.4 Pod セキュリティープロファイル監査
Pod セキュリティープロファイルドライバーラベル: restrictedドライバーラベル: baselineドライバーラベル: privileged

Restricted

No audit

Audit

Audit

Baseline

No audit

No audit

Audit

Privileged

No audit

No audit

No audit

5.2.2.5. CSI Volume Admission プラグインのデフォルト動作

CSI エフェメラルボリュームの参照 CSI ドライバーに csi-ephemeral-volume-profile ラベルがない場合、CSI Volume Admission プラグインは、ドライバーに強制、警告、および監査動作用の特権プロファイルがあると見なされます。同様に、Pod の namespace に Pod セキュリティーアドミッションラベルが設定されていない場合、受付プラグインは restricted プロファイルが強制、警告、および監査の決定について許可されていると見なします。そのため、ラベルが設定されていない場合、その CSI ドライバーを使用する CSI 一時ボリュームはデフォルトで特権付き namespace でのみ利用できます。

OpenShift Container Platform に同梱され、一時ボリュームをサポートする CSI ドライバーには、csi-ephemeral-volume-profile ラベルの妥当なデフォルトセットがあります。

  • Shared Resource CSI ドライバー: restricted
  • Azure File CSI ドライバー: privileged

管理者は、必要に応じてラベルのデフォルト値を変更できます。

5.2.3. Pod 仕様への CSI インライン一時ボリュームの埋め込み

CSI インラインの一時ボリュームを OpenShift Container Platform の Pod 仕様に埋め込むことができます。ランタイム時に、ネストされたインラインボリュームは、関連付けられた Pod の一時的なライフサイクルに従うため、CSI ドライバーは Pod の作成および破棄時にボリューム操作のすべてのフェーズをすべて処理できます。

手順

  1. Pod オブジェクト定義を作成し、これをファイルに保存します。
  2. CSI インラインの一時ボリュームをファイルに埋め込みます。

    my-csi-app.yaml

    kind: Pod
    apiVersion: v1
    metadata:
      name: my-csi-app
    spec:
      containers:
        - name: my-frontend
          image: busybox
          volumeMounts:
          - mountPath: "/data"
            name: my-csi-inline-vol
          command: [ "sleep", "1000000" ]
      volumes: 1
        - name: my-csi-inline-vol
          csi:
            driver: inline.storage.kubernetes.io
            volumeAttributes:
              foo: bar

    1
    Pod で使用されるボリュームの名前。
  3. 直前のステップで保存したオブジェクト定義ファイルを作成します。

    $ oc create -f my-csi-app.yaml

5.2.4. 関連情報

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.