|
| 1 | +--- |
| 2 | +title: Adnotatcje |
| 3 | +content_type: concept |
| 4 | +weight: 60 |
| 5 | +--- |
| 6 | + |
| 7 | +<!-- overview --> |
| 8 | +Możesz używać Kubernetesowych adnotacji do dołączania dodatkowych (czyli takich, |
| 9 | +które nie są wykorzystywane przy identyfikacji) metadanych do |
| 10 | +{{< glossary_tooltip text="obiektów" term_id="object" >}}. Narzędzia i biblioteki mogą odczytywać te metadane. |
| 11 | + |
| 12 | +<!-- body --> |
| 13 | +## Dołączanie metadanych do obiektów {#attaching-metadata-to-objects} |
| 14 | + |
| 15 | +Możesz używać etykiet (ang. labels) lub adnotacji (ang. annotations), aby dołączać |
| 16 | +metadane do obiektów Kubernetesa. Etykiety pomagają w |
| 17 | +wybieraniu obiektów i wyszukiwaniu ich zbiorów na podstawie określonych warunków. |
| 18 | +Z kolei adnotacje nie są używane do identyfikacji ani selekcji obiektów. |
| 19 | +Metadane w adnotacjach mogą mieć dowolny rozmiar i strukturę - mogą być |
| 20 | +małe lub duże, uporządkowane lub nie, i zawierać znaki niedozwolone w |
| 21 | +etykietach. Dopuszczalne jest jednoczesne użycie etykiet i adnotacji w tym samym obiekcie. |
| 22 | + |
| 23 | +Adnotacje, podobnie jak etykiety, są mapami klucz/wartość: |
| 24 | + |
| 25 | +```json |
| 26 | +"metadata": { |
| 27 | + "annotations": { |
| 28 | + "key1" : "value1", |
| 29 | + "key2" : "value2" |
| 30 | + } |
| 31 | +} |
| 32 | +``` |
| 33 | + |
| 34 | +{{<note>}} |
| 35 | +Klucze i wartości w mapie muszą być ciągami znaków. Innymi słowy, nie można używać |
| 36 | +wartości numerycznych, logicznych, list ani innych typów ani dla kluczy, ani dla wartości. |
| 37 | +{{</note>}} |
| 38 | + |
| 39 | +Oto przykłady informacji, które mogą być zapisane w adnotacjach: |
| 40 | + |
| 41 | +* Pola zarządzane przez warstwę konfiguracji deklaratywnej. Dołączanie tych |
| 42 | + pól jako adnotacji odróżnia je od wartości domyślnych ustawianych przez |
| 43 | + klientów lub serwery, oraz od pól generowanych automatycznie i pól ustawianych |
| 44 | + przez systemy automatycznego skalowania lub automatycznego dopasowywania rozmiaru. |
| 45 | + |
| 46 | +* Informacje dotyczące kompilacji, wersji lub obrazów, takie jak znaczniki |
| 47 | + czasu, identyfikatory wersji, gałąź git, numery PR, skróty obrazów i adres rejestru. |
| 48 | + |
| 49 | +* Referencje do zewnętrznych źródeł danych takich jak logi, metryki monitorujące, wyniki analiz czy dane audytowe. |
| 50 | + |
| 51 | +* Informacje o bibliotece klienckiej lub narzędziu, które mogą być |
| 52 | + wykorzystane do debugowania - na przykład nazwa, wersja i dane o kompilacji. |
| 53 | + |
| 54 | +* Informacje o pochodzeniu użytkownika, narzędzia lub systemu, |
| 55 | + takie jak adresy URL powiązanych obiektów z innych komponentów ekosystemu. |
| 56 | + |
| 57 | +* Metadane wykorzystywane przez proste narzędzia do wdrażania zmian (rollout), takie jak zapis stanu konfiguracji lub punktów kontrolnych służących do śledzenia postępu wdrożenia. |
| 58 | + |
| 59 | +* Numery telefonów lub pagerów osób odpowiedzialnych, lub wpisy do katalogu |
| 60 | + określające, gdzie można znaleźć te informacje, takie jak strona internetowa zespołu. |
| 61 | + |
| 62 | +* Instrukcje od użytkownika końcowego kierowane do implementacji, mające |
| 63 | + na celu zmianę zachowania systemu lub uruchomienie niestandardowych funkcji. |
| 64 | + |
| 65 | +Zamiast używać adnotacji, można przechowywać tego typu |
| 66 | +informacje w zewnętrznej bazie danych lub katalogu, ale to znacznie utrudniłoby |
| 67 | +tworzenie wspólnych bibliotek klienckich i |
| 68 | +narzędzi do wdrażania, zarządzania, introspekcji i tym podobnych działań. |
| 69 | + |
| 70 | +## Składnia i zestaw znaków {#syntax-and-character-set} |
| 71 | + |
| 72 | +_Adnotacje_ są parami klucz/wartość. Prawidłowe klucze adnotacji mają dwa segmenty: opcjonalny prefiks oraz nazwę, oddzielone ukośnikiem (`/`). Segment nazwy jest wymagany i musi mieć maksymalnie 63 znaki, zaczynać się i kończyć znakiem alfanumerycznym (`[a-z0-9A-Z]`) oraz może zawierać myślniki (`-`), podkreślenia (`_`), kropki (`.`) i znaki alfanumeryczne pomiędzy nimi. Prefiks jest opcjonalny. Jeśli zostanie określony, prefiks musi być subdomeną DNS: serią etykiet DNS oddzielonych kropkami (`.`), nie dłuższą w sumie niż 253 znaki, zakończoną ukośnikiem (`/`). |
| 73 | + |
| 74 | +Jeśli prefiks jest pominięty, zakłada się, że klucz adnotacji należy wyłącznie do użytkownika. Zautomatyzowane komponenty systemowe (np. `kube-scheduler`, `kube-controller-manager`, `kube-apiserver`, `kubectl` lub inna automatyzacja firm trzecich), które dodają adnotacje do obiektów końcowego użytkownika, muszą określić prefiks. |
| 75 | + |
| 76 | +Prefiksy `kubernetes.io/` i `k8s.io/` są zarezerwowane dla podstawowych komponentów Kubernetesa. |
| 77 | + |
| 78 | +Na przykład, oto manifest dla Poda, który posiada adnotację `imageregistry: https://hub.docker.com/` : |
| 79 | + |
| 80 | +```yaml |
| 81 | +apiVersion: v1 |
| 82 | +kind: Pod |
| 83 | +metadata: |
| 84 | + name: annotations-demo |
| 85 | + annotations: |
| 86 | + imageregistry: "https://hub.docker.com/" |
| 87 | +spec: |
| 88 | + containers: |
| 89 | + - name: nginx |
| 90 | + image: nginx:1.14.2 |
| 91 | + ports: |
| 92 | + - containerPort: 80 |
| 93 | +``` |
| 94 | +
|
| 95 | +## {{% heading "whatsnext" %}} |
| 96 | +
|
| 97 | +- Dowiedz się więcej o [Etykietach i Selektorach](/docs/concepts/overview/working-with-objects/labels/). |
| 98 | +- Znajdź [Typowe etykiety, Adnotacje i Tainty (ang. Taints)](/docs/reference/labels-annotations-taints/) |
0 commit comments