第6章. ラベルと注釈
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
Kubernetesは、アプリケーションのサイズと複雑さの両方がスケールするにつれて、あなたとともに成長するように作られている。 ラベルとアノテーションはKubernetesの基本概念で、アプリケーションの考え方にマッピングされたセットで作業できる。 アプリケーションにとって最も意味のあるグループを表現するために、すべてのリソースを整理し、マークし、クロスインデックスすることができる。
ラベルは、PodやReplicaSetsなどのKubernetesオブジェクトに付けることができるキーと値のペアである。ラベルは任意であり、Kubernetesオブジェクトに識別情報を付加するのに便利である。ラベルはオブジェクトをグループ化するための基盤となる。
一方、アノテーションは、ラベルに似たストレージ()メカニズムを提供する。ツールやライブラリが活用できる非特定情報を保持するために設計されたキーと値のペアである。ラベルとは異なり、アノテーションはクエリやフィルタリングなど、Pod同士を区別するためのものではない。
ラベル
ラベルは、オブジェクトを識別するメタデータを提供する。これらはオブジェクトの基本的な性質であり、グループ化、表示、演算子に使われる。ラベルの動機は、Googleが大規模で複雑なアプリケーションを運用してきた経験から生まれた。 この経験からいくつかの教訓が生まれた:
-
プロダクションはシングルトンを嫌う。ソフトウェアをデプロイするとき、ユーザはしばしばシングルインスタンスから始める。 しかし、アプリケーションが成熟するにつれて、これらのシングルトンはしばしば増殖し、オブジェクトのセットになる。これを念頭に置いて、Kubernetesはラベルを使用して、シングルインスタンスではなくオブジェクトのセットを扱う。
-
システムによって課されたどのような階層も、多くのユーザにとっては不足となる。 さらに、ユーザのグルーピングや階層は時間とともに変化する。 インスタンスンスでは、ユーザは最初、すべてのアプリは多くのサービスから構成されていると考えているかもしれない。しかし、時間の経過とともに、あるサービスが複数のアプリで共有されるようになるかもしれない。 Kubernetesのラベルは、このような状況やその他の状況にも適応できる柔軟性を備えている。
Googleが本番システムにどのようにアプローチしているかについては、Betsy Beyerらによる素晴らしいサイト信頼性本『Site Reliability Engineering』(O'Reilly)を参照されたい。
ラベルはシンプルな構文を持っている。 キーと値のペアで、キーも値も文字列で表される。ラベルのキーは、オプションのプレフィックスと、スラッシュで区切られた名前の2つの部分に分けることができる。プレフィックスは、253文字以内のDNSサブドメインでなければならない。キー名は必須で、最大63文字である。名前付けは英数字で始まり、英数字で終わ らなければならず、文字と文字の間にダッシュ(-)、アンダースコア(_)、ドット(.)を使用することができる。
ラベル値は最大63文字の文字列である。ラベル値の内容はラベル・キーと同じ規則に従う。表6-1に有効なラベル・キーと値を示す。
| キー | 価値 |
|---|---|
|