註釋
您可以使用 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 核心元件。
例如,以下是具有註釋 imageregistry: https://hub.docker.com/
的 Pod 的清單檔
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
下一步
- 深入瞭解標籤與選擇器。
- 尋找眾所周知的標籤、註釋與 Taints