Skip to content

Commit

Permalink
Translate overview/working-with-objects/annotations.md in Japanese (k…
Browse files Browse the repository at this point in the history
  • Loading branch information
kakts committed May 19, 2019
1 parent d494e95 commit 066a514
Show file tree
Hide file tree
Showing 2 changed files with 72 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
---
title: "Objectを利用する"
weight: 20
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
---
title: アノテーション(Annotations)
content_template: templates/concept
weight: 50
---

{{% capture overview %}}
ユーザは、識別用途でない任意のメタデータをオブジェクトに割り当てるためにアノテーションを使用できます。ツールやライブラリなどのクライアントは、このメタデータを取得できます。
{{% /capture %}}

{{% capture body %}}
## オブジェクトにメタデータを割り当てる

ユーザは、Kubernetesオブジェクトに対してラベルやアノテーションの両方またはどちらか一方を割り当てることができます。
ラベルはオブジェクトの選択や、特定の条件を満たしたオブジェクトの集合を探すことに使うことができます。
それと対照的に、アノテーションはオブジェクトを識別、または選択するために使用されません。
アノテーション内のメタデータは大小様々で、構造化されているものやされていないものも設定でき、ラベルでは許可されていない文字も含むことができます。

アノテーションは、ラベルと同様に、キーとバリューのマップとなります。

```json
"metadata": {
"annotations": {
"key1" : "value1",
"key2" : "value2"
}
}
```

下記は、アノテーション内で記録できる情報の例です。

* 宣言的設定レイヤによって管理されているフィールド。これらのフィールドをアノテーションとして割り当てることで、クライアントもしくはサーバによってセットされたデフォルト値、オートサイジングやオートスケーリングシステムによってセットされたフィールドや、自動生成のフィールドなどと区別することができます。

* ビルド、リリースやタイムスタンプのようなイメージの情報、リリースID、gitのブランチ、PR数、イメージハッシュ、レジストリアドレスなど

* ロギング、監視、分析用のポインタ、もしくは監査用リポジトリ

* デバッグ目的で使用されるためのクライアントライブラリやツールの情報。例えば、名前、バージョン、ビルド情報など。

* 他のエコシステムのコンポーネントからの関連オブジェクトのURLなど、ユーザやツール、システムの出所情報。

* 軽量ロールアウトツールのメタデータ。 例えば設定やチェックポイントなど。

* 情報をどこで確認できるかを示すためのもの。例えばチームのウェブサイト、責任者の電話番号や、ページャー番号やディレクトリエンティティなど。

* システムのふるまいの変更や、非標準機能を利用可能にするために、エンドユーザがシステムに対して指定する値

アノテーションを使用するかわりに、ユーザはこのようなタイプの情報を外部のデータベースやディレクトリに保存できます。しかし、それによりデプロイ、管理、イントロスペクションを行うためのクライアンライブラリやツールの生成が非常に難しくなります。

## シンタックスと文字セット

_アノテーション_ はキーとバリューのペアです。有効なアノテーションのキーの形式は2つのセグメントがあります。
プレフィックス(オプション)と名前で、それらはスラッシュ`/`で区切られます。
名前セグメントは必須で、63文字以下である必要があり、文字列の最初と最後は英数字(`[a-z0-9A-Z]`)と、文字列の間にダッシュ(`-`)、アンダースコア(`_`)、ドット(`.`)を使うことができます。
プレフィックスはオプションです。もしプレフィックスが指定されていた場合、プレフィックスはDNSサブドメイン形式である必要があり、それはドット(`.`)で区切られたDNSラベルのセットで、253文字以下である必要があり、最後にスラッシュ(`/`)が続きます。

もしプレフィックスが除外された場合、アノテーションキーはそのユーザに対してプライベートであると推定されます。
エンドユーザのオブジェクトにアノテーションを追加するような自動化されたシステムコンポーネント(例: `kube-scheduler` `kube-controller-manager` `kube-apiserver` `kubectl`やその他のサードパーティツール)は、プレフィックスを指定しなくてはなりません。

`kubernetes.io/``k8s.io/`プレフィックスは、Kubernetesコアコンポーネントのために予約されています。

{{% /capture %}}

{{% capture whatsnext %}}
[ラベルとセレクタ](/docs/concepts/overview/working-with-objects/labels/)について学習してください。
{{% /capture %}}


0 comments on commit 066a514

Please sign in to comment.