Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

27.11.5. Azure Storage Account シークレットの作成

Azure Storage Account の名前とキーをシークレット設定に定義します。これは後に OpenShift Container Platform で使用できるように base64 に変換されます。

  1. Azure Storage Account の名前とキーを取得し、base64 にエンコードします。

    apiVersion: v1
    kind: Secret
    metadata:
      name: azure-secret
    type: Opaque
    data:
      azurestorageaccountname: azhzdGVzdA==
      azurestorageaccountkey: eElGMXpKYm5ub2pGTE1Ta0JwNTBteDAyckhzTUsyc2pVN21GdDRMMTNob0I3ZHJBYUo4akQ2K0E0NDNqSm9nVjd5MkZVT2hRQ1dQbU02WWFOSHk3cWc9PQ==
  2. シークレット定義を azure-secret.yaml などのファイルに保存し、シークレットを作成します。

    $ oc create -f azure-secret.yaml
  3. シークレットが作成されたことを確認します。

    $ oc get secret azure-secret
    NAME          TYPE      DATA      AGE
    azure-secret   Opaque    1         23d
  4. OpenShift Container Platform に PV を作成する前に、PV をオブジェクト定義に定義します。

    Azure File を使用した PV オブジェクト定義の例

    apiVersion: "v1"
    kind: "PersistentVolume"
    metadata:
      name: "pv0001" 1
    spec:
      capacity:
        storage: "5Gi" 2
      accessModes:
        - "ReadWriteMany"
      azureFile: 3
        secretName: azure-secret 4
        shareName: example 5
        readOnly: false 6

    1
    ボリュームの名前。これを使用して、PV Claim (永続ボリューム要求) で、または Pod から、ボリュームを識別する必要があります。
    2
    このボリュームに割り当てられるストレージの量。
    3
    これは使用されるボリュームタイプを定義します (azureFile プラグイン)。
    4
    使用されるシークレットの名前。
    5
    ファイル共有の名前。
    6
    デフォルトは false (読み取り/書き込み) です。ここで ReadOnly を指定すると、VolumeMountsReadOnly 設定が強制的に実行されます。
  5. 定義を azure-file-pv.yaml などのファイルに保存し、PV を作成します。

    $ oc create -f azure-file-pv.yaml
    persistentvolume "pv0001" created
  6. PV が作成されたことを確認します。

    $ oc get pv
    NAME      LABELS    CAPACITY   ACCESSMODES   STATUS      CLAIM     REASON    AGE
    pv0001    <none>    5Gi        RWM           Available                       2s

これで、PVC (永続ボリューム要求) を使用してストレージを要求 し、新規の永続ボリュームを活用できるようになります。

重要

PV Claim (永続ボリューム要求) は、ユーザーの namespace にのみ存在し、同じ namespace 内の Pod からしか参照できません。別の namespace から永続ボリュームにアクセスしようとすると、Pod にエラーが発生します。