註解
你可以使用 Kubernetes 註解為物件附加任意的非識別性元資料。客戶端(例如工具和庫)可以檢索這些元資料。
為物件附加元資料
你可以使用標籤或註解為 Kubernetes 物件附加元資料。標籤可用於選擇物件並查詢滿足特定條件的物件集合。相比之下,註解不用於識別和選擇物件。註解中的元資料可以很小或很大,結構化或非結構化,並且可以包含標籤不允許的字元。可以在同一個物件的元資料中使用標籤和註解。
註解,就像標籤一樣,是鍵/值對映。
"metadata": {
"annotations": {
"key1" : "value1",
"key2" : "value2"
}
}
注意
對映中的鍵和值必須是字串。換句話說,你不能將數字、布林值、列表或其他型別用於鍵或值。以下是一些可以在註解中記錄的資訊示例:
由宣告式配置層管理的欄位。將這些欄位作為註解附加,可以將其與客戶端或伺服器設定的預設值以及自動生成欄位、自動擴縮系統設定的欄位區分開來。
構建、釋出或映象資訊,例如時間戳、釋出 ID、Git 分支、PR 編號、映象雜湊值和登錄檔地址。
指向日誌、監控、分析或審計倉庫的指標。
可用於除錯的客戶端庫或工具資訊:例如,名稱、版本和構建資訊。
使用者或工具/系統來源資訊,例如來自其他生態系統元件的相關物件的 URL。
輕量級釋出工具元資料:例如,配置或檢查點。
負責人的電話或尋呼機號碼,或指定可以在何處找到該資訊的目錄條目,例如團隊網站。
終端使用者向實現發出的指令,用於修改行為或啟用非標準功能。
除了使用註解,你還可以將此類資訊儲存在外部資料庫或目錄中,但這會使為部署、管理、自省等生成共享客戶端庫和工具變得更加困難。
語法和字元集
_註解_是鍵/值對。有效的註解鍵有兩個部分:可選的字首和名稱,由斜槓(/
)分隔。名稱部分是必需的,長度必須小於或等於 63 個字元,以字母數字字元([a-z0-9A-Z]
)開頭和結尾,中間可以包含破折號(-
)、下劃線(_
)、點(.
)和字母數字。字首是可選的。如果指定,字首必須是一個 DNS 子域:一系列由點(.
)分隔的 DNS 標籤,總長度不超過 253 個字元,後跟斜槓(/
)。
如果省略字首,則假定註解鍵對使用者是私有的。向終端使用者物件添加註解的自動化系統元件(例如 kube-scheduler
、kube-controller-manager
、kube-apiserver
、kubectl
或其他第三方自動化)必須指定字首。
kubernetes.io/
和 k8s.io/
字首保留給 Kubernetes 核心元件使用。
例如,這是一個 Pod 的清單,它帶有一個註解 imageregistry: https://hub.docker.com/
apiVersion: v1
kind: Pod
metadata:
name: annotations-demo
annotations:
imageregistry: "https://hub.docker.com/"
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
下一步
- 瞭解更多關於標籤和選擇器的資訊。
- 查詢眾所周知的標籤、註解和汙點