6.12.4.2. PV と PVC を作成して、Azure File のサブスクリプション間で静的にプロビジョニングする場合:
前提条件
- 1 つのサブスクリプション (サブスクリプション A とします) で、サービスプリンシパルまたはマネージドアイデンティティーを Azure アイデンティティーとして使用して、Azure に OpenShift Container Platform クラスターをインストールした。
- クラスターと同じテナント内にあるストレージを持つ別のサブスクリプション (Subscription B とする) へのアクセス
- Azure CLI にログイン済み
手順
- Azure File 共有のリソースグループ、ストレージアカウント、ストレージアカウントキー、Azure File 名を記録します。これらの値は次のステップで使用されます。
次のコマンドを実行して、永続ボリュームパラメーター
spec.csi.nodeStageSecretRef.nameのシークレットを作成します。$ oc create secret generic azure-storage-account-<storageaccount-name>-secret --from-literal=azurestorageaccountname="<azure-storage-account-name>" --from-literal azurestorageaccountkey="<azure-storage-account-key>" --type=Opaqueこの場合の
<azure-storage-account-name>と<azure-storage-account-key>は、ステップ 1 でそれぞれ記録した Azure ストレージアカウントの名前とキーです。次のサンプルファイルと同様の設定を使用して、永続ボリューム (PV) を作成します。
PV YAML ファイルの例
apiVersion: v1 kind: PersistentVolume metadata: annotations: pv.kubernetes.io/provisioned-by: file.csi.azure.com name: <pv-name>1 spec: capacity: storage: 10Gi2 accessModes: - ReadWriteMany persistentVolumeReclaimPolicy: Retain storageClassName: <sc-name>3 mountOptions: - cache=strict - nosharesock - actimeo=30 - nobrl csi: driver: file.csi.azure.com volumeHandle: "{resource-group-name}#{storage-account-name}#{file-share-name}"4 volumeAttributes: shareName: <existing-file-share-name>5 nodeStageSecretRef: name: <secret-name>6 namespace: <secret-namespace>7 次のような設定を使用して、ステップ 1 で参照された既存の Azure File 共有を指定する永続値要求 (PVC) を作成します。
PVC YAML ファイルの例
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: <pvc-name>1 spec: storageClassName: <sc-name>2 accessModes: - ReadWriteMany resources: requests: storage: 5Gi
ストレージクラスの使用を推奨
前述のサブスクリプション間の静的プロビジョニング例では、静的プロビジョニングを達成するためにストレージクラスは必要ないため、PV および PVC で参照されるストレージクラスは厳密には必要ありません。しかし、手動で作成された PVC が手動で作成された PV と意図せず一致しないために、新しい PV の動的プロビジョニングがトリガーされる可能性を回避するために、ストレージクラスを使用することが推奨されます。この問題の別の回避方法としては、provisioner: kubernetes.io/no-provisioner を使用してストレージクラスを作成するか、存在しないストレージクラスを参照できます。どちらの場合も、動的プロビジョニングは確実に実行されません。これらのストラテジーのいずれかを使用する場合、PV と PVC の不一致が発生すると PVC は保留状態のままになるため、エラーを修正できます。