ラベルの作成と管理

このページでは、GKE のクラスタラベルの概要を説明します。

クラスタラベルとは何か

クラスタラベルとは、Google Cloud Platform のクラスタを整理するのに役立つ Key-Value ペアのことです。各リソースにラベルを設定し、そのラベルに基づいてリソースをフィルタリングできます。ラベルに関する情報は課金システムに転送されるため、ラベルを基準に請求料金を分析することもできます。

クラスタラベルの一般的な用途

次に、クラスタラベルの一般的なユースケースを示します。

  • チームまたはコストセンターのクラスタラベル: 各チームが所有しているクラスタを区別するために、チームまたはコストセンターに基づいてラベルを追加します(team:researchteam:analytics など)。このタイプのラベルは、費用計算または予算作成に使用できます。

  • コンポーネント クラスタラベル: たとえば、component:rediscomponent:frontendcomponent:ingestcomponent:dashboard などです。

  • 環境またはステージのクラスタラベル: たとえば、environment:productionenvironment:test などです。

  • 状態クラスタラベル: たとえば、state:activestate:readytodeletestate:archive などです。

クラスタラベルの要件

リソースに適用するクラスタラベルは、次の要件を満たす必要があります。

  • 1 つのリソースには、最大 64 個のクラスタラベルを適用できます。
  • クラスタラベルは、Key-Value ペアにする必要があります。
  • キーは 1 文字以上、63 文字までにする必要があります。空にすることはできません。値は 63 文字以下にします。空にすることもできます。
  • キーと値には、小文字、数字、アンダースコア、ダッシュのみを使用できます。すべての文字は UTF-8 でエンコードする必要があります。国際文字も使用できます。
  • クラスタラベルのキー部分は一意にする必要があります。ただし、複数のリソースで同じキーを使用できます。
  • キーは、小文字または国際文字で始める必要があります。

始める前に

このタスクの準備として、次の手順を行います。

  • Google Kubernetes Engine API が有効になっていることを確認します。
  • Google Kubernetes Engine API の有効化
  • Cloud SDK がインストール済みであることを確認します。
  • デフォルトのプロジェクト ID を設定します。
    gcloud config set project [PROJECT_ID]
  • ゾーンクラスタを使用する場合は、デフォルトのコンピューティング ゾーンを設定します。
    gcloud config set compute/zone [COMPUTE_ZONE]
  • リージョン クラスタを使用する場合は、デフォルトのコンピューティング リージョンを設定します。
    gcloud config set compute/region [COMPUTE_REGION]
  • gcloud を最新バージョンに更新します。
    gcloud components update

クラスタのラベル付けについて

GKE では、クラスタレベルでラベルを適用します。クラスタにラベルを付けると、そのラベルがクラスタの個々のリソース(ノードや永続ディスクなど)のすべてに伝播されます。

クラスタラベルを追加、更新、削除するには、Google Cloud Platform Console、gcloud コマンドライン ツール、または GKE API を使用できます。

API リクエストに使用するラベルのフィンガープリントの取得

GKE API を使用してクラスタラベルを更新または追加する際は、リクエストに最新のクラスタラベルのフィンガープリントを入力して、他のリクエストとの競合を防ぐ必要があります。

最新のクラスタラベルのフィンガープリントを取得するには、該当するクラスタに対して GET リクエストを実行します。次に例を示します。

GET https://container.googleapis.com/v1/projects/myproject/zones/us-central1-f/clusters/example-cluster

レスポンスに含まれる labelFingerprint プロパティを見つけます。

200 OK

{

 "name": "mycluster",
 "description": "test-cluster",
 "initialNodeCount": 3,
 ...
 "resourceLabels": {
    "env": "test",
    ...
  },
  "labelFingerprint": "p1ty_9HoBk0="
}

ラベル付きクラスタの作成

gcloud

gcloud ツールを使用してクラスタを作成する際にラベルを追加するには、次のコマンドを実行します。

gcloud container clusters create [CLUSTER_NAME] --labels [KEY]=[VALUE]

例:

gcloud container clusters create example-cluster --labels env=dev

Console

GCP Console を使用してクラスタを作成する際にラベルを追加するには、次の手順に従います。

  1. GCP Console で Google Kubernetes Engine のメニューに移動します。

    Google Kubernetes Engine のメニューに移動

  2. [クラスタを作成] をクリックします。

  3. 必要に応じてクラスタを構成します。次に、[詳細オプション] をクリックします。

  4. [ラベルを追加] をクリックします。

  5. 必要なラベルを追加します。

  6. [作成] をクリックします。

API

クラスタの作成時にラベルを含めるには、projects.zones.clusters.create に渡す cluster オブジェクト内で resourceLabels オブジェクトを指定します。

既存クラスタのラベルの追加または更新

gcloud

gcloud ツールを使用してラベルを更新するには、次のコマンドを実行します。

gcloud container clusters update [CLUSTER_NAME] --update-labels [KEY]=[VALUE]

例:

gcloud container clusters update example-cluster --update-labels env=dev,release=stable

クラスタの既存のラベルを保持する場合は、追加する新しいラベルとともに既存のラベルを含める必要があります。

Console

GCP Console を使用してラベルを追加または更新するには、次の手順に従います。

  1. GCP Console で Google Kubernetes Engine のメニューに移動します。

    Google Kubernetes Engine のメニューにアクセスする

  2. 単一のクラスタにラベルを追加するには、鉛筆の形をしたクラスタの編集ボタンをクリックします。

    1. [ラベルの追加] をクリックし、1 つ以上のラベルを追加します。
    2. [保存] をクリックします。
  3. 複数のクラスタにまとめて一度にラベルを追加するには:

    1. ラベルを付けるクラスタのチェックボックスをオンにします。
    2. ラベル列が表示されていない場合は、[情報パネルを表示] をクリックしてラベル列を展開します。
    3. 必要に応じて、ラベルを更新したり、新しいラベルを追加したりします。
    4. [保存] をクリックします。

API

ラベルを更新するには、クラスタの resourceLabels メソッドに対し、最新のフィンガープリントと適用するラベルの完全なリストを指定した POST リクエストを実行します。

メタデータやタグの場合と同様に、クラスタの既存のラベルを残したい場合は、追加する新しいラベルとともに、既存のラベルをリクエストに含める必要があります。

たとえば、次のスニペットは、resourceLabels メソッドに対してリクエストを行います。

POST https://container.googleapis.com/v1/projects/myproject/zones/us-central1-f/clusters/example-cluster/resourceLabels

{
 "resourceLabels": {
  "env": "test",
  "an-existing-tag": ""
 },
 "labelFingerprint": "42WmSpB8rSM="
}

クラスタラベルの削除

gcloud

gcloud コマンドライン ツールを使用する場合は、--remove-labels フラグを指定して update コマンドを実行します。削除するラベルのキーを指定します。例:

gcloud container clusters update example-cluster --remove-labels env

Console

GCP Console を使用してラベルを削除するには、次の手順に従います。

  1. GCP Console で Google Kubernetes Engine のメニューに移動します。

    Google Kubernetes Engine のメニューにアクセスする

  2. 単一のクラスタからラベルを削除するには、鉛筆の形をしたクラスタの編集ボタンをクリックします。

    1. 削除するラベルの横にある [X] をクリックします。
    2. [保存] をクリックします。
  3. 複数のクラスタからまとめて一度にラベルを削除するには:

    1. ラベルを削除するクラスタの横にあるチェックボックスをオンにします。
    2. ラベル列が表示されていない場合は、[情報パネルを表示] をクリックしてラベル列を展開します。
    3. 削除するラベルの横にある [X] をすべてクリックします。
    4. [保存] をクリックします。

API

API では、適切なクラスタの resourceLabels メソッドに対して POST リクエストを行います。すべてのラベルを削除する場合は、現在の labelsFingerprint とラベルの空のリストを指定します。一部のラベルだけ削除する場合は、残すラベルのリストを指定します(削除するラベルだけ除去します)。次に例を示します。

Request

POST https://container.googleapis.com/v1/projects/myproject/zones/us-central1-f/clusters/example-cluster/resourceLabels

{
 "resourceLabels": { },
 "labelFingerprint": "42WmSpB8rSM="
}

次のステップ

GKE の概要を確認する

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Kubernetes Engine のドキュメント