# Kubernetes

> Source: https://www.ymotongpoo.com/works/otel-specs-ja/semconv/resource/k8s/


**Status**: [Development][DocumentStatus]

Kubernetesのオブジェクトとメタデータを理解するのに役立つ資料:

* [Namespace](https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/)
* [Names and UIDs](https://kubernetes.io/docs/concepts/overview/working-with-objects/names/)。
* [Pods](https://kubernetes.io/docs/concepts/workloads/pods/)
* [Controllers](https://kubernetes.io/docs/concepts/workloads/controllers/)

Kubernetesオブジェクトの「名前」は、そのオブジェクトの型において、ある特定の時点でのみ「namespace」内で一意です（名前は時間が経つと再利用される場合があります）。「UID」はクラスター全体で一意であり、かつ時間軸を通してもほぼ確実に一意です。このため、すべてのKubernetesオブジェクトについて常にUIDを設定することが推奨されますが、「名前」は通常より人間にとって分かりやすいため、これも併せて設定できます。

## Cluster

<!-- semconv entity.k8s.cluster -->
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
<!-- see templates/registry/markdown/snippet.md.j2 -->
<!-- prettier-ignore-start -->

**Status:** ![Development](https://img.shields.io/badge/-development-blue)

**type:** `k8s.cluster`

**Description:** Kubernetesクラスター。

**Attributes:**

| Role | Key | Stability | [Requirement Level](/works/otel-specs-ja/semconv/general/attribute-requirement-level/) | Value Type | Description | Example Values |
| --- | --- | --- | --- | --- | --- | --- |
| Identity | [`k8s.cluster.uid`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/k8s/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Recommended` | string | クラスターの疑似ID。`kube-system` 名前空間のUIDに設定されます。[1] | `218fc5a9-a5f1-4b54-aa05-46717d0ab26d` |
| Description | [`k8s.cluster.name`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/k8s/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Recommended` | string | クラスターの名前。 | `opentelemetry-cluster` |

**[1] `k8s.cluster.uid`:** K8sにはクラスターIDを取得する手段がありません。将来この手段が
追加された場合は、公式のAPI経由で `k8s.cluster.uid` を収集することを推奨する予定です。
それまでの間は、`kube-system` 名前空間の `uid` をクラスターIDの代替として使用できます。
以下に、その理由を説明します。

K8sクラスター内で作成されるすべてのオブジェクトには、明確に区別されたUIDが割り当てられます。
`kube-system` 名前空間はKubernetes自身が使用するものであり、クラスターの生存期間にわたって
存在します。`kube-system` 名前空間の `uid` を使用することは、クラスターが再構築されない限り
変化しないため、K8sのクラスターIDとして妥当な代替と言えます。さらに、Kubernetesの
UIDは、[ISO/IEC 9834-8およびITU-T X.667](https://www.itu.int/ITU-T/studygroups/com17/oid.html)
によって標準化されたUUIDです。この規格には次のように記されています。

> If generated according to one of the mechanisms defined in Rec.
> ITU-T X.667 | ISO/IEC 9834-8, a UUID is either guaranteed to be
> different from all other UUIDs generated before 3603 A.D., or is
> extremely likely to be different (depending on the mechanism chosen).
>
> （Rec. ITU-T X.667 | ISO/IEC 9834-8で定義された機構のいずれかに従って生成された場合、
> UUIDは西暦3603年より前に生成されたすべての他のUUIDと異なることが保証される、
> または（選択した機構によっては）異なる可能性が極めて高い。）

したがって、クラスター間でUIDが衝突する可能性は極めて低いといえます。
<!-- prettier-ignore-end -->
<!-- END AUTOGENERATED TEXT -->
<!-- endsemconv -->

## Node

<!-- semconv entity.k8s.node -->
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
<!-- see templates/registry/markdown/snippet.md.j2 -->
<!-- prettier-ignore-start -->

**Status:** ![Development](https://img.shields.io/badge/-development-blue)

**type:** `k8s.node`

**Description:** Kubernetes Nodeオブジェクト。

**Attributes:**

| Role | Key | Stability | [Requirement Level](/works/otel-specs-ja/semconv/general/attribute-requirement-level/) | Value Type | Description | Example Values |
| --- | --- | --- | --- | --- | --- | --- |
| Identity | [`k8s.node.uid`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/k8s/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Recommended` | string | NodeのUID。 | `1eb3a0c6-0477-4080-a9cb-0cb7db65c6a2` |
| Description | [`k8s.node.name`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/k8s/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Recommended` | string | Nodeの名前。 | `node-1` |
| Description | [`k8s.node.annotation.<key>`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/k8s/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Opt-In` | string | Nodeに置かれたアノテーション。`<key>` はアノテーション名で、値はアノテーションの値（値が空であっても）。[1] | `0`; `` |
| Description | [`k8s.node.label.<key>`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/k8s/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Opt-In` | string | Nodeに置かれたラベル。`<key>` はラベル名で、値はラベルの値（値が空であっても）。[2] | `arm64`; `` |

**[1] `k8s.node.annotation.<key>`:** 例:

- 値 `0` を持つアノテーション `node.alpha.kubernetes.io/ttl` は、値 `"0"` を持つ
  `k8s.node.annotation.node.alpha.kubernetes.io/ttl` 属性として記録すべきです（SHOULD）。
- 空文字列の値を持つアノテーション `data` は、値 `""` を持つ
  `k8s.node.annotation.data` 属性として記録すべきです（SHOULD）。

**[2] `k8s.node.label.<key>`:** 例:

- 値 `arm64` を持つラベル `kubernetes.io/arch` は、値 `"arm64"` を持つ
  `k8s.node.label.kubernetes.io/arch` 属性として記録すべきです（SHOULD）。
- 空文字列の値を持つラベル `data` は、値 `""` を持つ
  `k8s.node.label.data` 属性として記録すべきです（SHOULD）。
<!-- prettier-ignore-end -->
<!-- END AUTOGENERATED TEXT -->
<!-- endsemconv -->

## Namespace

Namespaceは名前のスコープを提供します。オブジェクトの名前は名前空間内で一意である必要がありますが、名前空間をまたいで一意である必要はありません。

<!-- semconv entity.k8s.namespace -->
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
<!-- see templates/registry/markdown/snippet.md.j2 -->
<!-- prettier-ignore-start -->

**Status:** ![Development](https://img.shields.io/badge/-development-blue)

**type:** `k8s.namespace`

**Description:** Kubernetes Namespace。

**Attributes:**

| Role | Key | Stability | [Requirement Level](/works/otel-specs-ja/semconv/general/attribute-requirement-level/) | Value Type | Description | Example Values |
| --- | --- | --- | --- | --- | --- | --- |
| Identity | [`k8s.namespace.name`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/k8s/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Recommended` | string | Podが実行されている名前空間の名前。 | `default` |
| Description | [`k8s.namespace.annotation.<key>`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/k8s/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Opt-In` | string | Namespaceに置かれたアノテーション。`<key>` はアノテーション名で、値はアノテーションの値（値が空であっても）。[1] | `0`; `` |
| Description | [`k8s.namespace.label.<key>`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/k8s/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Opt-In` | string | Namespaceに置かれたラベル。`<key>` はラベル名で、値はラベルの値（値が空であっても）。[2] | `default`; `` |

**[1] `k8s.namespace.annotation.<key>`:** 例:

- 値 `0` を持つアノテーション `ttl` は、値 `"0"` を持つ
  `k8s.namespace.annotation.ttl` 属性として記録すべきです（SHOULD）。
- 空文字列の値を持つアノテーション `data` は、値 `""` を持つ
  `k8s.namespace.annotation.data` 属性として記録すべきです（SHOULD）。

**[2] `k8s.namespace.label.<key>`:** 例:

- 値 `default` を持つラベル `kubernetes.io/metadata.name` は、値 `"default"` を持つ
  `k8s.namespace.label.kubernetes.io/metadata.name` 属性として記録すべきです（SHOULD）。
- 空文字列の値を持つラベル `data` は、値 `""` を持つ
  `k8s.namespace.label.data` 属性として記録すべきです（SHOULD）。
<!-- prettier-ignore-end -->
<!-- END AUTOGENERATED TEXT -->
<!-- endsemconv -->

## Pod

最も小さく単純なKubernetesオブジェクトです。Podはクラスター上で実行されるコンテナの集合を表します。

<!-- semconv entity.k8s.pod -->
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
<!-- see templates/registry/markdown/snippet.md.j2 -->
<!-- prettier-ignore-start -->

**Status:** ![Development](https://img.shields.io/badge/-development-blue)

**type:** `k8s.pod`

**Description:** Kubernetes Podオブジェクト。

**Attributes:**

| Role | Key | Stability | [Requirement Level](/works/otel-specs-ja/semconv/general/attribute-requirement-level/) | Value Type | Description | Example Values |
| --- | --- | --- | --- | --- | --- | --- |
| Identity | [`k8s.pod.uid`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/k8s/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Recommended` | string | PodのUID。 | `275ecb36-5aa8-4c2a-9c47-d8bb681b9aff` |
| Description | [`k8s.pod.name`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/k8s/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Recommended` | string | Podの名前。 | `opentelemetry-pod-autoconf` |
| Description | [`k8s.pod.annotation.<key>`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/k8s/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Opt-In` | string | Podに置かれたアノテーション。`<key>` はアノテーション名で、値はアノテーションの値。[1] | `true`; `x64`; `` |
| Description | [`k8s.pod.hostname`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/k8s/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Opt-In` | string | Podのホスト名を指定します。[2] | `collector-gateway` |
| Description | [`k8s.pod.ip`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/k8s/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Opt-In` | string | Podに割り当てられたIPアドレス。[3] | `172.18.0.2` |
| Description | [`k8s.pod.label.<key>`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/k8s/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Opt-In` | string | Podに置かれたラベル。`<key>` はラベル名で、値はラベルの値。[4] | `my-app`; `x64`; `` |
| Description | [`k8s.pod.start_time`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/k8s/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Opt-In` | string | Podの開始タイムスタンプ。[5] | `2025-12-04T08:41:03Z` |

**[1] `k8s.pod.annotation.<key>`:** 例:

- 値 `true` を持つアノテーション `kubernetes.io/enforce-mountable-secrets` は、値 `"true"` を持つ
  `k8s.pod.annotation.kubernetes.io/enforce-mountable-secrets` 属性として記録すべきです（SHOULD）。
- 値 `x64` を持つアノテーション `mycompany.io/arch` は、値 `"x64"` を持つ
  `k8s.pod.annotation.mycompany.io/arch` 属性として記録すべきです（SHOULD）。
- 空文字列の値を持つアノテーション `data` は、値 `""` を持つ
  `k8s.pod.annotation.data` 属性として記録すべきです（SHOULD）。

**[2] `k8s.pod.hostname`:** K8sのPod仕様には、ホスト名を指定するために使えるオプションのhostnameフィールドがあります。
このフィールドについては[K8sのドキュメント](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-hostname-and-subdomain-field)を参照してください。

この属性は、[K8s PodSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#podspec-v1-core)の
`hostname` フィールドと対応します。

**[3] `k8s.pod.ip`:** この属性は、[K8s PodStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#podstatus-v1-core)の
`podIP` フィールドと対応します。

**[4] `k8s.pod.label.<key>`:** 例:

- 値 `my-app` を持つラベル `app` は、値 `"my-app"` を持つ
  `k8s.pod.label.app` 属性として記録すべきです（SHOULD）。
- 値 `x64` を持つラベル `mycompany.io/arch` は、値 `"x64"` を持つ
  `k8s.pod.label.mycompany.io/arch` 属性として記録すべきです（SHOULD）。
- 空文字列の値を持つラベル `data` は、値 `""` を持つ
  `k8s.pod.label.data` 属性として記録すべきです（SHOULD）。

**[5] `k8s.pod.start_time`:** Kubeletがオブジェクトを確認した日時。
これはKubeletがそのPodのコンテナイメージを取得する前の時点です。

この属性は、ISO 8601（RFC 3339互換）形式による、[K8s PodStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#podstatus-v1-core)の
`startTime` フィールドと対応します。
<!-- prettier-ignore-end -->
<!-- END AUTOGENERATED TEXT -->
<!-- endsemconv -->

## Container

Podテンプレートにおけるコンテナの仕様です。この型は、実行中のコンテナの名前とは異なる、Podテンプレート内のコンテナの名前などの情報を捉えるために使われることを意図しています。

注記: この型は、実行中のコンテナに対応する[container](/works/otel-specs-ja/semconv/resource/container/)とは異なります。

<!-- semconv entity.k8s.container -->
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
<!-- see templates/registry/markdown/snippet.md.j2 -->
<!-- prettier-ignore-start -->

**Status:** ![Development](https://img.shields.io/badge/-development-blue)

**type:** `k8s.container`

**Description:** [PodTemplate](https://kubernetes.io/docs/concepts/workloads/pods/#pod-templates)内のコンテナ。

**Attributes:**

| Role | Key | Stability | [Requirement Level](/works/otel-specs-ja/semconv/general/attribute-requirement-level/) | Value Type | Description | Example Values |
| --- | --- | --- | --- | --- | --- | --- |
| Identity | [`k8s.container.name`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/k8s/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Recommended` | string | Pod仕様におけるContainerの名前で、Pod内で一意である必要があります。コンテナランタイムは通常、これとは異なるグローバルに一意な名前（`container.name`）を使用します。 | `redis` |
| Description | [`k8s.container.restart_count`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/k8s/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Recommended` | int | コンテナが再起動した回数。この属性は、コンテナ仕様内の特定のコンテナ（実行中か停止中かを問わない）を識別するために使用できます。 | |
| Description | [`k8s.container.status.last_terminated_reason`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/k8s/) | ![Development](https://img.shields.io/badge/-development-blue) | `Recommended` | string | Containerが最後に終了した理由。 | `Evicted`; `Error` |
<!-- prettier-ignore-end -->
<!-- END AUTOGENERATED TEXT -->
<!-- endsemconv -->

## ReplicaSet

<!-- semconv entity.k8s.replicaset -->
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
<!-- see templates/registry/markdown/snippet.md.j2 -->
<!-- prettier-ignore-start -->

**Status:** ![Development](https://img.shields.io/badge/-development-blue)

**type:** `k8s.replicaset`

**Description:** Kubernetes ReplicaSetオブジェクト。

**Attributes:**

| Role | Key | Stability | [Requirement Level](/works/otel-specs-ja/semconv/general/attribute-requirement-level/) | Value Type | Description | Example Values |
| --- | --- | --- | --- | --- | --- | --- |
| Identity | [`k8s.replicaset.uid`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/k8s/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Recommended` | string | ReplicaSetのUID。 | `275ecb36-5aa8-4c2a-9c47-d8bb681b9aff` |
| Description | [`k8s.replicaset.name`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/k8s/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Recommended` | string | ReplicaSetの名前。 | `opentelemetry` |
| Description | [`k8s.replicaset.annotation.<key>`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/k8s/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Opt-In` | string | ReplicaSetに置かれたアノテーション。`<key>` はアノテーション名で、値はアノテーションの値（値が空であっても）。[1] | `0`; `` |
| Description | [`k8s.replicaset.label.<key>`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/k8s/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Opt-In` | string | ReplicaSetに置かれたラベル。`<key>` はラベル名で、値はラベルの値（値が空であっても）。[2] | `guestbook`; `` |

**[1] `k8s.replicaset.annotation.<key>`:** 例:

- 値 `0` を持つアノテーション `replicas` は、値 `"0"` を持つ
  `k8s.replicaset.annotation.replicas` 属性として記録すべきです（SHOULD）。
- 空文字列の値を持つアノテーション `data` は、値 `""` を持つ
  `k8s.replicaset.annotation.data` 属性として記録すべきです（SHOULD）。

**[2] `k8s.replicaset.label.<key>`:** 例:

- 値 `guestbook` を持つラベル `app` は、値 `"guestbook"` を持つ
  `k8s.replicaset.label.app` 属性として記録すべきです（SHOULD）。
- 空文字列の値を持つラベル `injected` は、値 `""` を持つ
  `k8s.replicaset.label.injected` 属性として記録すべきです（SHOULD）。
<!-- prettier-ignore-end -->
<!-- END AUTOGENERATED TEXT -->
<!-- endsemconv -->

## Deployment

ローカル状態を持たないPodを実行することで、レプリケートされたアプリケーションを管理するAPIオブジェクトです。各レプリカはPodとして表現され、それらのPodはクラスターのノード間に分散配置されます。

<!-- semconv entity.k8s.deployment -->
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
<!-- see templates/registry/markdown/snippet.md.j2 -->
<!-- prettier-ignore-start -->

**Status:** ![Development](https://img.shields.io/badge/-development-blue)

**type:** `k8s.deployment`

**Description:** Kubernetes Deploymentオブジェクト。

**Attributes:**

| Role | Key | Stability | [Requirement Level](/works/otel-specs-ja/semconv/general/attribute-requirement-level/) | Value Type | Description | Example Values |
| --- | --- | --- | --- | --- | --- | --- |
| Identity | [`k8s.deployment.uid`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/k8s/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Recommended` | string | DeploymentのUID。 | `275ecb36-5aa8-4c2a-9c47-d8bb681b9aff` |
| Description | [`k8s.deployment.name`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/k8s/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Recommended` | string | Deploymentの名前。 | `opentelemetry` |
| Description | [`k8s.deployment.annotation.<key>`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/k8s/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Opt-In` | string | Deploymentに置かれたアノテーション。`<key>` はアノテーション名で、値はアノテーションの値（値が空であっても）。[1] | `1`; `` |
| Description | [`k8s.deployment.label.<key>`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/k8s/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Opt-In` | string | Deploymentに置かれたラベル。`<key>` はラベル名で、値はラベルの値（値が空であっても）。[2] | `guestbook`; `` |

**[1] `k8s.deployment.annotation.<key>`:** 例:

- 値 `1` を持つアノテーション `replicas` は、値 `"1"` を持つ
  `k8s.deployment.annotation.replicas` 属性として記録すべきです（SHOULD）。
- 空文字列の値を持つアノテーション `data` は、値 `""` を持つ
  `k8s.deployment.annotation.data` 属性として記録すべきです（SHOULD）。

**[2] `k8s.deployment.label.<key>`:** 例:

- 値 `guestbook` を持つラベル `app` は、値 `"guestbook"` を持つ
  `k8s.deployment.label.app` 属性として記録すべきです（SHOULD）。
- 空文字列の値を持つラベル `injected` は、値 `""` を持つ
  `k8s.deployment.label.injected` 属性として記録すべきです（SHOULD）。
<!-- prettier-ignore-end -->
<!-- END AUTOGENERATED TEXT -->
<!-- endsemconv -->

## StatefulSet

Podの集合のデプロイとスケーリングを管理し、それらのPodの順序と一意性を保証します。

<!-- semconv entity.k8s.statefulset -->
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
<!-- see templates/registry/markdown/snippet.md.j2 -->
<!-- prettier-ignore-start -->

**Status:** ![Development](https://img.shields.io/badge/-development-blue)

**type:** `k8s.statefulset`

**Description:** Kubernetes StatefulSetオブジェクト。

**Attributes:**

| Role | Key | Stability | [Requirement Level](/works/otel-specs-ja/semconv/general/attribute-requirement-level/) | Value Type | Description | Example Values |
| --- | --- | --- | --- | --- | --- | --- |
| Identity | [`k8s.statefulset.uid`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/k8s/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Recommended` | string | StatefulSetのUID。 | `275ecb36-5aa8-4c2a-9c47-d8bb681b9aff` |
| Description | [`k8s.statefulset.name`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/k8s/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Recommended` | string | StatefulSetの名前。 | `opentelemetry` |
| Description | [`k8s.statefulset.annotation.<key>`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/k8s/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Opt-In` | string | StatefulSetに置かれたアノテーション。`<key>` はアノテーション名で、値はアノテーションの値（値が空であっても）。[1] | `1`; `` |
| Description | [`k8s.statefulset.label.<key>`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/k8s/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Opt-In` | string | StatefulSetに置かれたラベル。`<key>` はラベル名で、値はラベルの値（値が空であっても）。[2] | `guestbook`; `` |

**[1] `k8s.statefulset.annotation.<key>`:** 例:

- 値 `1` を持つアノテーション `replicas` は、値 `"1"` を持つ
  `k8s.statefulset.annotation.replicas` 属性として記録すべきです（SHOULD）。
- 空文字列の値を持つアノテーション `data` は、値 `""` を持つ
  `k8s.statefulset.annotation.data` 属性として記録すべきです（SHOULD）。

**[2] `k8s.statefulset.label.<key>`:** 例:

- 値 `guestbook` を持つラベル `app` は、値 `"guestbook"` を持つ
  `k8s.statefulset.label.app` 属性として記録すべきです（SHOULD）。
- 空文字列の値を持つラベル `injected` は、値 `""` を持つ
  `k8s.statefulset.label.injected` 属性として記録すべきです（SHOULD）。
<!-- prettier-ignore-end -->
<!-- END AUTOGENERATED TEXT -->
<!-- endsemconv -->

## DaemonSet

DaemonSetは、すべて（または一部）のNodeがPodのコピーを実行することを保証します。

<!-- semconv entity.k8s.daemonset -->
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
<!-- see templates/registry/markdown/snippet.md.j2 -->
<!-- prettier-ignore-start -->

**Status:** ![Development](https://img.shields.io/badge/-development-blue)

**type:** `k8s.daemonset`

**Description:** Kubernetes DaemonSetオブジェクト。

**Attributes:**

| Role | Key | Stability | [Requirement Level](/works/otel-specs-ja/semconv/general/attribute-requirement-level/) | Value Type | Description | Example Values |
| --- | --- | --- | --- | --- | --- | --- |
| Identity | [`k8s.daemonset.uid`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/k8s/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Recommended` | string | DaemonSetのUID。 | `275ecb36-5aa8-4c2a-9c47-d8bb681b9aff` |
| Description | [`k8s.daemonset.name`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/k8s/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Recommended` | string | DaemonSetの名前。 | `opentelemetry` |
| Description | [`k8s.daemonset.annotation.<key>`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/k8s/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Opt-In` | string | DaemonSetに置かれたアノテーション。`<key>` はアノテーション名で、値はアノテーションの値（値が空であっても）。[1] | `1`; `` |
| Description | [`k8s.daemonset.label.<key>`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/k8s/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Opt-In` | string | DaemonSetに置かれたラベル。`<key>` はラベル名で、値はラベルの値（値が空であっても）。[2] | `guestbook`; `` |

**[1] `k8s.daemonset.annotation.<key>`:** 例:

- 値 `1` を持つアノテーション `replicas` は、値 `"1"` を持つ
  `k8s.daemonset.annotation.replicas` 属性として記録すべきです（SHOULD）。
- 空文字列の値を持つアノテーション `data` は、値 `""` を持つ
  `k8s.daemonset.annotation.data` 属性として記録すべきです（SHOULD）。

**[2] `k8s.daemonset.label.<key>`:** 例:

- 値 `guestbook` を持つラベル `app` は、値 `"guestbook"` を持つ
  `k8s.daemonset.label.app` 属性として記録すべきです（SHOULD）。
- 空文字列の値を持つラベル `injected` は、値 `""` を持つ
  `k8s.daemonset.label.injected` 属性として記録すべきです（SHOULD）。
<!-- prettier-ignore-end -->
<!-- END AUTOGENERATED TEXT -->
<!-- endsemconv -->

## Job

Jobは1つ以上のPodを作成し、指定した数のPodが正常に終了することを保証します。

<!-- semconv entity.k8s.job -->
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
<!-- see templates/registry/markdown/snippet.md.j2 -->
<!-- prettier-ignore-start -->

**Status:** ![Development](https://img.shields.io/badge/-development-blue)

**type:** `k8s.job`

**Description:** Kubernetes Jobオブジェクト。

**Attributes:**

| Role | Key | Stability | [Requirement Level](/works/otel-specs-ja/semconv/general/attribute-requirement-level/) | Value Type | Description | Example Values |
| --- | --- | --- | --- | --- | --- | --- |
| Identity | [`k8s.job.uid`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/k8s/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Recommended` | string | JobのUID。 | `275ecb36-5aa8-4c2a-9c47-d8bb681b9aff` |
| Description | [`k8s.job.name`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/k8s/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Recommended` | string | Jobの名前。 | `opentelemetry` |
| Description | [`k8s.job.annotation.<key>`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/k8s/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Opt-In` | string | Jobに置かれたアノテーション。`<key>` はアノテーション名で、値はアノテーションの値（値が空であっても）。[1] | `1`; `` |
| Description | [`k8s.job.label.<key>`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/k8s/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Opt-In` | string | Jobに置かれたラベル。`<key>` はラベル名で、値はラベルの値（値が空であっても）。[2] | `ci`; `` |

**[1] `k8s.job.annotation.<key>`:** 例:

- 値 `1` を持つアノテーション `number` は、値 `"1"` を持つ
  `k8s.job.annotation.number` 属性として記録すべきです（SHOULD）。
- 空文字列の値を持つアノテーション `data` は、値 `""` を持つ
  `k8s.job.annotation.data` 属性として記録すべきです（SHOULD）。

**[2] `k8s.job.label.<key>`:** 例:

- 値 `ci` を持つラベル `jobtype` は、値 `"ci"` を持つ
  `k8s.job.label.jobtype` 属性として記録すべきです（SHOULD）。
- 空文字列の値を持つラベル `automated` は、値 `""` を持つ
  `k8s.job.label.automated` 属性として記録すべきです（SHOULD）。
<!-- prettier-ignore-end -->
<!-- END AUTOGENERATED TEXT -->
<!-- endsemconv -->

## CronJob

CronJobは、繰り返しスケジュールに従ってJobを作成します。

<!-- semconv entity.k8s.cronjob -->
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
<!-- see templates/registry/markdown/snippet.md.j2 -->
<!-- prettier-ignore-start -->

**Status:** ![Development](https://img.shields.io/badge/-development-blue)

**type:** `k8s.cronjob`

**Description:** Kubernetes CronJobオブジェクト。

**Attributes:**

| Role | Key | Stability | [Requirement Level](/works/otel-specs-ja/semconv/general/attribute-requirement-level/) | Value Type | Description | Example Values |
| --- | --- | --- | --- | --- | --- | --- |
| Identity | [`k8s.cronjob.uid`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/k8s/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Recommended` | string | CronJobのUID。 | `275ecb36-5aa8-4c2a-9c47-d8bb681b9aff` |
| Description | [`k8s.cronjob.name`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/k8s/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Recommended` | string | CronJobの名前。 | `opentelemetry` |
| Description | [`k8s.cronjob.annotation.<key>`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/k8s/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Opt-In` | string | CronJobに置かれたcronjobアノテーション。`<key>` はアノテーション名で、値はアノテーションの値。[1] | `4`; `` |
| Description | [`k8s.cronjob.label.<key>`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/k8s/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Opt-In` | string | CronJobに置かれたラベル。`<key>` はラベル名で、値はラベルの値。[2] | `weekly`; `` |

**[1] `k8s.cronjob.annotation.<key>`:** 例:

- 値 `4` を持つアノテーション `retries` は、値 `"4"` を持つ
  `k8s.cronjob.annotation.retries` 属性として記録すべきです（SHOULD）。
- 空文字列の値を持つアノテーション `data` は、値 `""` を持つ
  `k8s.cronjob.annotation.data` 属性として記録すべきです（SHOULD）。

**[2] `k8s.cronjob.label.<key>`:** 例:

- 値 `weekly` を持つラベル `type` は、値 `"weekly"` を持つ
  `k8s.cronjob.label.type` 属性として記録すべきです（SHOULD）。
- 空文字列の値を持つラベル `automated` は、値 `""` を持つ
  `k8s.cronjob.label.automated` 属性として記録すべきです（SHOULD）。
<!-- prettier-ignore-end -->
<!-- END AUTOGENERATED TEXT -->
<!-- endsemconv -->

## ReplicationController

ReplicationControllerは、指定した数のPodレプリカが常に実行されていることを保証します。

<!-- semconv entity.k8s.replicationcontroller -->
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
<!-- see templates/registry/markdown/snippet.md.j2 -->
<!-- prettier-ignore-start -->

**Status:** ![Development](https://img.shields.io/badge/-development-blue)

**type:** `k8s.replicationcontroller`

**Description:** Kubernetes ReplicationControllerオブジェクト。

**Attributes:**

| Role | Key | Stability | [Requirement Level](/works/otel-specs-ja/semconv/general/attribute-requirement-level/) | Value Type | Description | Example Values |
| --- | --- | --- | --- | --- | --- | --- |
| Identity | [`k8s.replicationcontroller.uid`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/k8s/) | ![Development](https://img.shields.io/badge/-development-blue) | `Recommended` | string | replication controllerのUID。 | `275ecb36-5aa8-4c2a-9c47-d8bb681b9aff` |
| Description | [`k8s.replicationcontroller.name`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/k8s/) | ![Development](https://img.shields.io/badge/-development-blue) | `Recommended` | string | replication controllerの名前。 | `opentelemetry` |
<!-- prettier-ignore-end -->
<!-- END AUTOGENERATED TEXT -->
<!-- endsemconv -->

## HorizontalPodAutoscaler

HorizontalPodAutoscaler（略称HPA）は、需要に合わせてワークロードを自動的にスケーリングすることを目的として、ワークロードリソース（DeploymentやStatefulSetなど）を自動的に更新します。

<!-- semconv entity.k8s.hpa -->
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
<!-- see templates/registry/markdown/snippet.md.j2 -->
<!-- prettier-ignore-start -->

**Status:** ![Development](https://img.shields.io/badge/-development-blue)

**type:** `k8s.hpa`

**Description:** Kubernetes HorizontalPodAutoscalerオブジェクト。

**Attributes:**

| Role | Key | Stability | [Requirement Level](/works/otel-specs-ja/semconv/general/attribute-requirement-level/) | Value Type | Description | Example Values |
| --- | --- | --- | --- | --- | --- | --- |
| Identity | [`k8s.hpa.uid`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/k8s/) | ![Development](https://img.shields.io/badge/-development-blue) | `Recommended` | string | horizontal pod autoscalerのUID。 | `275ecb36-5aa8-4c2a-9c47-d8bb681b9aff` |
| Description | [`k8s.hpa.name`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/k8s/) | ![Development](https://img.shields.io/badge/-development-blue) | `Recommended` | string | horizontal pod autoscalerの名前。 | `opentelemetry` |
| Description | [`k8s.hpa.scaletargetref.api_version`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/k8s/) | ![Development](https://img.shields.io/badge/-development-blue) | `Recommended` | string | HorizontalPodAutoscalerがスケール対象とするリソースのAPIバージョン。[1] | `apps/v1`; `autoscaling/v2` |
| Description | [`k8s.hpa.scaletargetref.kind`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/k8s/) | ![Development](https://img.shields.io/badge/-development-blue) | `Recommended` | string | HorizontalPodAutoscalerがスケール対象とするリソースの種類（kind）。[2] | `Deployment`; `StatefulSet` |
| Description | [`k8s.hpa.scaletargetref.name`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/k8s/) | ![Development](https://img.shields.io/badge/-development-blue) | `Recommended` | string | HorizontalPodAutoscalerがスケール対象とするリソースの名前。[3] | `my-deployment`; `my-statefulset` |

**[1] `k8s.hpa.scaletargetref.api_version`:** これは、HPA仕様の `scaleTargetRef` にある `apiVersion` フィールドに対応します。

**[2] `k8s.hpa.scaletargetref.kind`:** これは、HPA仕様の `scaleTargetRef` にある `kind` フィールドに対応します。

**[3] `k8s.hpa.scaletargetref.name`:** これは、HPA仕様の `scaleTargetRef` にある `name` フィールドに対応します。
<!-- prettier-ignore-end -->
<!-- END AUTOGENERATED TEXT -->
<!-- endsemconv -->

## ResourceQuota

ResourceQuotaは、名前空間ごとの集約リソース消費を制限する制約を提供します。

<!-- semconv entity.k8s.resourcequota -->
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
<!-- see templates/registry/markdown/snippet.md.j2 -->
<!-- prettier-ignore-start -->

**Status:** ![Development](https://img.shields.io/badge/-development-blue)

**type:** `k8s.resourcequota`

**Description:** Kubernetes ResourceQuotaオブジェクト。

**Attributes:**

| Role | Key | Stability | [Requirement Level](/works/otel-specs-ja/semconv/general/attribute-requirement-level/) | Value Type | Description | Example Values |
| --- | --- | --- | --- | --- | --- | --- |
| Identity | [`k8s.resourcequota.uid`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/k8s/) | ![Development](https://img.shields.io/badge/-development-blue) | `Recommended` | string | resource quotaのUID。 | `275ecb36-5aa8-4c2a-9c47-d8bb681b9aff` |
| Description | [`k8s.resourcequota.name`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/k8s/) | ![Development](https://img.shields.io/badge/-development-blue) | `Recommended` | string | resource quotaの名前。 | `opentelemetry` |
<!-- prettier-ignore-end -->
<!-- END AUTOGENERATED TEXT -->
<!-- endsemconv -->

## PersistentVolume

PersistentVolume（PV）は、管理者によって準備される、またはStorageClassesを使って動的に準備される、クラスター内のストレージの一片です。

<!-- semconv entity.k8s.persistentvolume -->
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
<!-- see templates/registry/markdown/snippet.md.j2 -->
<!-- prettier-ignore-start -->

**Status:** ![Development](https://img.shields.io/badge/-development-blue)

**type:** `k8s.persistentvolume`

**Description:** Kubernetesの[PersistentVolume](https://kubernetes.io/docs/concepts/storage/persistent-volumes/)オブジェクト。

**Attributes:**

| Role | Key | Stability | [Requirement Level](/works/otel-specs-ja/semconv/general/attribute-requirement-level/) | Value Type | Description | Example Values |
| --- | --- | --- | --- | --- | --- | --- |
| Identity | [`k8s.persistentvolume.uid`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/k8s/) | ![Development](https://img.shields.io/badge/-development-blue) | `Required` | string | PersistentVolumeのUID。 | `275ecb36-5aa8-4c2a-9c47-d8bb681b9aff` |
| Description | [`k8s.persistentvolume.name`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/k8s/) | ![Development](https://img.shields.io/badge/-development-blue) | `Recommended` | string | PersistentVolumeの名前。 | `pv-data-01` |
| Description | [`k8s.storageclass.name`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/k8s/) | ![Development](https://img.shields.io/badge/-development-blue) | `Recommended` | string | K8sの[StorageClass](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#storageclass-v1-storage-k8s-io)オブジェクトの名前。 | `gold.storageclass.storage.k8s.io` |
| Description | [`k8s.persistentvolume.annotation.<key>`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/k8s/) | ![Development](https://img.shields.io/badge/-development-blue) | `Opt-In` | string | PersistentVolumeに置かれたアノテーション。`<key>` はアノテーション名で、値はアノテーションの値（値が空であっても）。[1] | `kubernetes.io/aws-ebs`; `` |
| Description | [`k8s.persistentvolume.label.<key>`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/k8s/) | ![Development](https://img.shields.io/badge/-development-blue) | `Opt-In` | string | PersistentVolumeに置かれたラベル。`<key>` はラベル名で、値はラベルの値（値が空であっても）。[2] | `ssd`; `` |
| Description | [`k8s.persistentvolume.reclaim_policy`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/k8s/) | ![Development](https://img.shields.io/badge/-development-blue) | `Opt-In` | string | PersistentVolumeの回収ポリシー。[3] | `Delete`; `Retain`; `Recycle` |

**[1] `k8s.persistentvolume.annotation.<key>`:** 例:

- 値 `kubernetes.io/aws-ebs` を持つアノテーション `pv.kubernetes.io/provisioned-by` は、値 `"kubernetes.io/aws-ebs"` を持つ
  `k8s.persistentvolume.annotation.pv.kubernetes.io/provisioned-by` 属性として記録すべきです（SHOULD）。
- 空文字列の値を持つアノテーション `data` は、値 `""` を持つ
  `k8s.persistentvolume.annotation.data` 属性として記録すべきです（SHOULD）。

**[2] `k8s.persistentvolume.label.<key>`:** 例:

- 値 `ssd` を持つラベル `type` は、値 `"ssd"` を持つ
  `k8s.persistentvolume.label.type` 属性として記録すべきです（SHOULD）。
- 空文字列の値を持つラベル `data` は、値 `""` を持つ
  `k8s.persistentvolume.label.data` 属性として記録すべきです（SHOULD）。

**[3] `k8s.persistentvolume.reclaim_policy`:** この属性は、[K8s PersistentVolumeSpec](https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-v1/#PersistentVolumeSpec)の
`persistentVolumeReclaimPolicy` フィールドと対応します。

---

`k8s.persistentvolume.reclaim_policy` には、次のよく知られた値の一覧があります。いずれかが該当する場合はその値を使用しなければならず（MUST）、それ以外の場合は独自の値を使ってもかまいません（MAY）。

| Value | Description | Stability |
| --- | --- | --- |
| `Delete` | ボリュームは、クレームから解放された時点で削除されます。 | ![Development](https://img.shields.io/badge/-development-blue) |
| `Recycle` | ボリュームは、クレームから解放された時点でリサイクル（基本的なスクラブ）されます。 | ![Development](https://img.shields.io/badge/-development-blue) |
| `Retain` | ボリュームは、クレームから解放された時点で保持されます。 | ![Development](https://img.shields.io/badge/-development-blue) |
<!-- prettier-ignore-end -->
<!-- END AUTOGENERATED TEXT -->
<!-- endsemconv -->

## PersistentVolumeClaim

PersistentVolumeClaim（PVC）は、ユーザーによるストレージの要求です。PodがNodeリソースを消費するのと同様に、PVCはPVリソースを消費するという点で、Podと似ています。

<!-- semconv entity.k8s.persistentvolumeclaim -->
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
<!-- see templates/registry/markdown/snippet.md.j2 -->
<!-- prettier-ignore-start -->

**Status:** ![Development](https://img.shields.io/badge/-development-blue)

**type:** `k8s.persistentvolumeclaim`

**Description:** Kubernetesの[PersistentVolumeClaim](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#persistentvolumeclaims)オブジェクト。

**Attributes:**

| Role | Key | Stability | [Requirement Level](/works/otel-specs-ja/semconv/general/attribute-requirement-level/) | Value Type | Description | Example Values |
| --- | --- | --- | --- | --- | --- | --- |
| Identity | [`k8s.persistentvolumeclaim.uid`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/k8s/) | ![Development](https://img.shields.io/badge/-development-blue) | `Required` | string | PersistentVolumeClaimのUID。 | `275ecb36-5aa8-4c2a-9c47-d8bb681b9aff` |
| Description | [`k8s.persistentvolumeclaim.name`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/k8s/) | ![Development](https://img.shields.io/badge/-development-blue) | `Recommended` | string | PersistentVolumeClaimの名前。 | `pvc-data-01` |
| Description | [`k8s.storageclass.name`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/k8s/) | ![Development](https://img.shields.io/badge/-development-blue) | `Recommended` | string | K8sの[StorageClass](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#storageclass-v1-storage-k8s-io)オブジェクトの名前。 | `gold.storageclass.storage.k8s.io` |
| Description | [`k8s.persistentvolumeclaim.annotation.<key>`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/k8s/) | ![Development](https://img.shields.io/badge/-development-blue) | `Opt-In` | string | PersistentVolumeClaimに置かれたアノテーション。`<key>` はアノテーション名で、値はアノテーションの値（値が空であっても）。[1] | `kubernetes.io/aws-ebs`; `` |
| Description | [`k8s.persistentvolumeclaim.label.<key>`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/k8s/) | ![Development](https://img.shields.io/badge/-development-blue) | `Opt-In` | string | PersistentVolumeClaimに置かれたラベル。`<key>` はラベル名で、値はラベルの値（値が空であっても）。[2] | `my-app`; `` |

**[1] `k8s.persistentvolumeclaim.annotation.<key>`:** 例:

- 値 `kubernetes.io/aws-ebs` を持つアノテーション `volume.beta.kubernetes.io/storage-provisioner` は、値 `"kubernetes.io/aws-ebs"` を持つ
  `k8s.persistentvolumeclaim.annotation.volume.beta.kubernetes.io/storage-provisioner` 属性として記録すべきです（SHOULD）。
- 空文字列の値を持つアノテーション `data` は、値 `""` を持つ
  `k8s.persistentvolumeclaim.annotation.data` 属性として記録すべきです（SHOULD）。

**[2] `k8s.persistentvolumeclaim.label.<key>`:** 例:

- 値 `my-app` を持つラベル `app` は、値 `"my-app"` を持つ
  `k8s.persistentvolumeclaim.label.app` 属性として記録すべきです（SHOULD）。
- 空文字列の値を持つラベル `data` は、値 `""` を持つ
  `k8s.persistentvolumeclaim.label.data` 属性として記録すべきです（SHOULD）。
<!-- prettier-ignore-end -->
<!-- END AUTOGENERATED TEXT -->
<!-- endsemconv -->

[DocumentStatus]: https://opentelemetry.io/docs/specs/otel/document-status

## Kubernetes固有のガイドライン

次のガイドラインは、Kubernetesに固有のものです。

- [サービス属性](https://opentelemetry.io/docs/specs/semconv/non-normative/k8s-attributes/#service-attributes)
- [命名における既知の例外](https://opentelemetry.io/docs/specs/semconv/non-normative/naming-known-exceptions/)

- [Openshift](/works/otel-specs-ja/semconv/resource/k8s/openshift/)
