10.5.4. SPIFFE Container Storage Interface ドライバーのデプロイ
SpiffeCSIDriver CR を使用して、Container Storage Interface (CSI) ドライバーを設定します。この設定では、SPIFFE ソケットがワークロード Pod に直接マウントされるため、アプリケーションは SPIFFE ワークロード API に安全にアクセスできるようになります。
前提条件
-
cluster-adminロールを持つユーザーとしてクラスターにアクセスできる。 - クラスターに Zero Trust Workload Identity Manager をインストールした。
手順
SpiffeCSIDriverCR を作成します。SpiffeCSIDriverCR オブジェクトを定義する YAML ファイル (例:SpiffeCSIDriver.yaml) を作成します。SpiffeCSIDriver.yamlの例apiVersion: operator.openshift.io/v1alpha1 kind: SpiffeCSIDriver metadata: name: cluster spec: agentSocketPath: "/run/spire/agent-sockets" pluginName: "csi.spiffe.io"ここでは、以下のようになります。
metadata.name-
名前は
クラスターでなければならないことを指定します。 spec.agentSocketPath-
SPIRE エージェントのワークロード API ソケットを含むディレクトリーへのパスを指定します。このディレクトリーは、CSI ドライバーによってワークロードコンテナーにバインドマウントされます。このディレクトリーは、
ホストパスボリュームを介して SPIRE エージェントと CSI ドライバー間で共有されます。絶対パスを指定する必要があります。最大長は 256 文字です。ワークロードがソケットにアクセスするには、この値がSpireAgent.spec.socketPathと一致している必要があります。 spec.pluginName-
CSI プラグインの名前を指定します。これは、クラスターにデプロイされ、
VolumeMount設定で使用される CSI ドライバー名を設定します。ワークロード Pod で参照されているドライバー名と一致する必要があります。ドメイン名は有効な形式 (例:csi.spiffe.io) で、最大長は 127 文字である必要があります。
以下のコマンドを実行して設定を適用します。
$ oc apply -f SpiffeCSIDriver.yaml
検証
次のコマンドを実行して、SPIFFE CSI ドライバーのデーモンセットが準備完了状態であり、利用可能であることを確認します。
$ oc get daemonset -l app.kubernetes.io/name=spiffe-csi-driver -n zero-trust-workload-identity-manager出力例
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE spire-spiffe-csi-driver 3 3 3 3 3 <none> 114s次のコマンドを実行して、SPIFFE Container Storage Interface (CSI) ドライバー Pod のステータスが
Runningであることを確認します。$ oc get po -l app.kubernetes.io/name=spiffe-csi-driver -n zero-trust-workload-identity-manager出力例
NAME READY STATUS RESTARTS AGE spire-spiffe-csi-driver-gpwcp 2/2 Running 0 2m37s spire-spiffe-csi-driver-rrbrd 2/2 Running 0 2m37s spire-spiffe-csi-driver-w6s6q 2/2 Running 0 2m37s