---
title: Anotasi
content_type: concept
weight: 50
---

<!-- overview -->
Kamu dapat menggunakan fitur anotasi dari Kubernetes untuk menempelkan sembarang
metadata tanpa identitas pada suatu objek. Klien, seperti perangkat dan *library*,
dapat memperoleh metadata tersebut.


<!-- body -->
## Mengaitkan metadata pada objek

Kamu dapat menggunakan label maupun anotasi untuk menempelkan metadata pada suatu
objek Kubernetes. Label dapat digunakan untuk memilih objek dan mencari sekumpulan
objek yang memenuhi kondisi tertentu. Sebaliknya, anotasi tidak digunakan untuk
mengenali atau memilih objek. Metadata dalam sebuah anotasi bisa berukuran kecil atau besar,
terstruktur atau tidak terstruktur, dan dapat berisikan karakter-karakter yang tidak
diperbolehkan oleh label.

Anotasi, seperti label, merupakan pemetaan *key/value*:

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

Berikut merupakan beberapa contoh informasi yang dapat dicatat dengan menggunakan anotasi:

* *Field-field* yang dikelola secara deklaratif oleh *layer* konfigurasi. Menempelkan
  *field-field* tersebut sebagai anotasi membedakan mereka dari nilai *default* yang
  ditetapkan oleh klien ataupun server, dari *field-field* yang otomatis di-*generate*, serta
  dari *field-field* yang ditetapkan oleh sistem *auto-sizing* atau *auto-scaling*.

* Informasi mengenai *build*, rilis, atau *image*, seperti *timestamp*, rilis ID, git *branch*,
  nomor PR, *hash* suatu *image*, dan alamat registri.

* Penanda untuk *logging*, *monitoring*, *analytics*, ataupun repositori audit.

* Informasi mengenai *library* klien atau perangkat yang dapat digunakan untuk *debugging*:
  misalnya, informasi nama, versi, dan *build*.

* Informasi yang berhubungan dengan pengguna atau perangkat/sistem, seperti URL objek yang terkait
  dengan komponen dari ekosistem lain.

* Metadata untuk perangkat *rollout* yang ringan (*lightweight*): contohnya, untuk
  konfigurasi atau penanda (*checkpoint*).

* Nomor telepon atau *pager* dari orang yang bertanggung jawab, atau entri direktori
  yang berisi informasi lebih lanjut, seperti *website* sebuah tim.

* Arahan dari pengguna (*end-user*) untuk melakukan implementasi, perubahan perilaku,
  ataupun untuk interaksi dengan fitur-fitur non-standar.

Tanpa menggunakan anotasi, kamu dapat saja menyimpan informasi-informasi dengan tipe
di atas pada suatu basis data atau direktori eksternal, namun hal ini sangat mempersulit
pembuatan *library* klien dan perangkat yang bisa digunakan sama-sama (*shared*) untuk melakukan
*deploy*, pengelolaan, introspeksi, dan semacamnya.

## Sintaksis dan sekumpulan karakter

Anotasi merupakan *key/value pair*. *Key* dari sebuah anotasi yang valid memiliki dua segmen: segmen prefiks yang opsional dan segmen nama, dipisahkan
oleh sebuah garis miring (`/`). Segmen nama bersifat wajib dan harus terdiri dari 63 karakter atau kurang, dimulai dan diakhiri dengan karakter alfanumerik (`[a-z0-9A-Z]`) dengan tanda minus (`-`), garis bawah (`_`), titik (`.`), dan alfanumerik di tengahnya. Jika terdapat prefiks,
prefiks haruslah berupa subdomain DNS: urutan dari label DNS yang dipisahkan oleh titik (`.`), totalnya tidak melebihi 253 karakter,
diikuti dengan garis miring (`/`).

Jika tidak terdapat prefiks, maka *key* dari anotasi diasumsikan hanya bisa dilihat oleh pengguna (privat). Komponen sistem otomasi
(seperti `kube-scheduler`, `kube-controller-manager`, `kube-apiserver`, `kubectl`, ataupun otomasi pihak ketiga) yang menambahkan anotasi
pada objek-objek pengguna harus memiliki sebuah prefiks.

Prefiks `kubernetes.io/` dan `k8s.io/` merupakan reservasi dari komponen inti Kubernetes.



## {{% heading "whatsnext" %}}

Pelajari lebih lanjut tentang [Label dan Selektor](/id/docs/concepts/overview/working-with-objects/labels/).

