ブロック・ボリュームへのタグの適用

Kubernetes Engine (OKE)の使用時に、ブロック・ボリューム・リソースにタグを適用する方法、および初期ブロック・ボリューム・タグをオーバーライドする方法をご紹介します。

クラスタの作成時に、オプションで、永続ボリューム要求(PVC)の定義時に作成されるブロック・ボリュームに適用するタグを定義できます。これらのタグは、初期ブロック・ボリューム・タグと呼ばれます。定義済タグとフリーフォーム・タグの両方を初期ブロック・ボリューム・タグとして指定できます。

初期ブロック・ボリューム・タグをオーバーライドするには、タグ・パラメータを含む新しいKubernetesストレージ・クラスを定義してから、このストレージ・クラスを使用してPVCを作成します(初期ブロック・ボリューム・タグのオーバーライドを参照)。タグ・パラメータを含むストレージ・クラスを使用する場合、クラスタ定義で指定された初期ブロック・ボリューム・タグはいずれもブロック・ボリュームに適用されません。かわりに、ストレージ・クラスで設定されたタグがブロック・ボリューム・リソースに適用されます。

コンパートメントに指定されたデフォルト値を持つタグのデフォルトは、ブロック・ボリューム・リソースにも自動的に適用されます。Kubernetes Engineでは、現在、ユーザーが適用した値でのタグのデフォルトはサポートされていません。

次の点に注意してください:

  • タグは、ブロック・ボリュームが最初に作成された場合にのみブロック・ボリュームに適用されます。ブロック・ボリューム・リソースに適用された初期ブロック・ボリューム・タグを更新する場合、変更は新しいブロック・ボリュームにのみ適用されます(タグがストレージ・クラス定義のパラメータによってオーバーライドされないことを前提としています)。既存のブロック・ボリュームに適用されるタグは影響を受けません。
  • コスト・トラッキング定義済タグをブロック・ボリュームに適用する場合は、ブロック・ボリューム使用量を予算に含めることができます(コスト・トラッキング・タグの使用を参照)。
  • 1つのコンパートメントに属するタグ・ネームスペースから、別のコンパートメントに属するブロック・ボリューム・リソースに定義済タグを適用するには、クラスタがタグ・ネームスペースを使用できるようにポリシー・ステートメントを含める必要があります。クラスタおよびタグ・ネームスペースが異なるコンパートメントにある場合の追加IAMポリシーを参照してください。

コンソールを使用した初期ブロック・ボリューム・タグの指定

新しいクラスタ用に作成されたブロック・ボリューム・リソースに適用する初期ブロック・ボリューム・タグを指定するには:

  1. コンソールを使用した、カスタムの作成ワークフローでの明示的に定義された設定によるクラスタの作成の手順に従って、新しいクラスタを作成します。
  2. 「クラスタの作成」ページの「タグ付け- 初期ブロック・ボリューム」セクションで、「タグの追加」を選択します。
  3. 定義済のタグをブロック・ボリューム・リソースに追加するには:
    • ネームスペース:タグが属するタグ・ネームスペースを選択します。
    • キー:ブロック・ボリューム・リソースに適用する定義済タグの名前を選択します。
    • 値:事前定義済の値リストからタグの値を選択するか、新しい値を入力するか、空白のままにします(定義済タグの設定方法によって異なります)。
  4. ブロック・ボリューム・リソースにフリーフォーム・タグを追加するには:
    • ネームスペース:「なし」に設定します(フリーフォーム・タグはタグ・ネームスペースに属しません)。
    • キー:ブロック・ボリューム・リソースに適用するフリーフォーム・タグの名前を入力します。
    • 値:ブロック・ボリューム・リソースに適用するタグの値を入力します。

初期ブロック・ボリューム・タグを更新して、クラスタ用に作成された新しいブロック・ボリューム・リソースに適用するには:

  1. クラスタの更新の手順に従って、既存のクラスタを更新します。
  2. クラスタの詳細ページの「タグ」タブを選択します。
  3. 「初期ロード・バランサ・タグ」セクションで:
  4. 「初期ブロック・ボリューム・タグ」セクションを表示します。
    • 「追加」を選択して、追加の定義済タグおよびフリーフォーム・タグを新しいブロック・ボリューム・リソースに適用します。
    • 「アクション」メニュー(3つのドット)から「編集」を選択して、新しいブロック・ボリューム・リソースに適用される定義済タグおよびフリーフォーム・タグの値を変更します。
    • 「アクション」メニュー(3つのドット)から「削除」を選択して、以前に新しいブロック・ボリューム・リソースに適用された定義済タグおよびフリーフォーム・タグを削除します。

    タグは、ブロック・ボリューム・リソースが最初に作成された場合にのみブロック・ボリューム・リソースに適用されます。そのため、初期ブロック・ボリューム・タグを更新する場合、変更は新しいブロック・ボリューム・リソースにのみ適用されます。既存のブロック・ボリューム・リソースにすでに適用されているタグは影響を受けません。

CLIを使用した初期ブロック・ボリューム・タグの指定

oci ce node-pool create \
--cluster-id <cluster-ocid> \
--compartment-id <compartment-ocid> \
--kubernetes-version <kubernetes-version> \
--name <node-pool-name> \
--node-shape <node-shape>  \
--persistent-volume-defined-tags <json-name-value-pairs> \
--persistent-volume-freeform-tags <json-name-value-pairs>

例:

oci ce node-pool create \
--cluster-id ocid1.cluster.oc1.iad.aaaaaaaaaf______jrd \
--compartment-id ocid1.compartment.oc1..aaaaaaaay______t6q \
--kubernetes-version v1.20.11 \
--name Finance-Node-Pool \
--node-shape VM.Standard2.1 \
--persistent-volume-defined-tags {"Operations": {"CostCenter": "42"}} \
--persistent-volume-freeform-tags {"Department": "Finance"}

APIを使用した初期ブロック・ボリューム・タグの指定

初期ブロック・ボリューム・タグを追加および更新するには、CreateClusterおよびクラスタの更新操作で使用されるPersistentVolumeConfigDetailsオブジェクトのfreeformTagsおよびdefinedTags属性を使用します。

初期ブロック・ボリューム・タグのオーバーライド

次のように、ストレージ・クラス・マニフェスト・ファイルのパラメータを使用して、ブロック・ボリューム・リソースに適用される初期ブロック・ボリューム・タグをオーバーライドできます:

  • 定義された初期ブロック・ボリューム・タグをオーバーライドするには、StorageClass定義のパラメータ・セクションに次のパラメータを含めます:

    oci.oraclecloud.com/initial-defined-tags-override: '{"<tag-namespace>": {"<tag-key>": "<tag-value>"}}'
  • 自由形式の初期ブロック・ボリューム・タグをオーバーライドするには、StorageClass定義のパラメータ・セクションに次のパラメータを含めます:

    oci.oraclecloud.com/initial-freeform-tags-override: '{"<tag-key>": "<tag-value>"}'

例:

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: oci-bv-specifictags
provisioner: blockvolume.csi.oraclecloud.com
parameters:
  attachment-type: "paravirtualized"
  oci.oraclecloud.com/initial-freeform-tags-override: '{"Department": "Finance"}'
  oci.oraclecloud.com/initial-defined-tags-override: '{"Operations": {"CostCenter": "42"}}'
reclaimPolicy: Delete
volumeBindingMode: WaitForFirstConsumer

次の点に注意してください:

  • 前述のパラメータを指定すると、クラスタに設定された初期ブロック・ボリューム・タグはいずれもブロック・ボリューム・リソースに適用されません。パラメータで指定されたタグのみが、タグのデフォルトとともにブロック・ボリューム・リソースに適用されます。
  • StorageClass定義を含むマニフェスト・ファイルを適用してストレージ・クラスを作成した後で、定義を更新してマニフェスト・ファイルを再適用することによってタグ・パラメータ値を変更することはできません。ストレージクラスが作成されると、不変になります。以前に指定した値とは異なるタグ・パラメータ値を指定するには、タグ・パラメータの新しい値を含む新しいStorageClass定義を作成する必要があります。次に、PVC定義に新しいストレージ・クラスを指定します。

ブロック・ボリュームに適用されるタグ

この図は、Kubernetes Engineによるブロック・ボリューム・リソースへのタグの適用方法をグラフィカルに示したフローチャートを示しています。周囲のテキストでも同じ情報が提供されます。