Kubernetes 注解

2022-04-28 14:22 更新

注解

你可以使用 Kubernetes 注解為對象附加任意的非標識的元數(shù)據(jù)??蛻舳顺绦颍ɡ绻ぞ吆蛶欤┠軌颢@取這些元數(shù)據(jù)信息。

為對象附加元數(shù)據(jù)

你可以使用標簽或注解將元數(shù)據(jù)附加到 Kubernetes 對象。 標簽可以用來選擇對象和查找滿足某些條件的對象集合。 相反,注解不用于標識和選擇對象。 注解中的元數(shù)據(jù),可以很小,也可以很大,可以是結構化的,也可以是非結構化的,能夠包含標簽不允許的字符。

注解和標簽一樣,是鍵/值對:

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

Map 中的鍵和值必須是字符串。 換句話說,你不能使用數(shù)字、布爾值、列表或其他類型的鍵或值。

以下是一些例子,用來說明哪些信息可以使用注解來記錄:

  • 由聲明性配置所管理的字段。 將這些字段附加為注解,能夠將它們與客戶端或服務端設置的默認值、 自動生成的字段以及通過自動調整大小或自動伸縮系統(tǒng)設置的字段區(qū)分開來。
  • 構建、發(fā)布或鏡像信息(如時間戳、發(fā)布 ID、Git 分支、PR 數(shù)量、鏡像哈希、倉庫地址)。
  • 指向日志記錄、監(jiān)控、分析或審計倉庫的指針。
  • 可用于調試目的的客戶端庫或工具信息:例如,名稱、版本和構建信息。
  • 用戶或者工具/系統(tǒng)的來源信息,例如來自其他生態(tài)系統(tǒng)組件的相關對象的 URL。
  • 輕量級上線工具的元數(shù)據(jù)信息:例如,配置或檢查點。
  • 負責人員的電話或呼機號碼,或指定在何處可以找到該信息的目錄條目,如團隊網站。
  • 從用戶到最終運行的指令,以修改行為或使用非標準功能。

你可以將這類信息存儲在外部數(shù)據(jù)庫或目錄中而不使用注解, 但這樣做就使得開發(fā)人員很難生成用于部署、管理、自檢的客戶端共享庫和工具。

語法和字符集

注解(Annotations) 存儲的形式是鍵/值對。有效的注解鍵分為兩部分: 可選的前綴和名稱,以斜杠(?/?)分隔。 名稱段是必需項,并且必須在63個字符以內,以字母數(shù)字字符(?[a-z0-9A-Z]?)開頭和結尾, 并允許使用破折號(?-?),下劃線(?_?),點(?.?)和字母數(shù)字。 前綴是可選的。如果指定,則前綴必須是DNS子域:一系列由點(?.?)分隔的DNS標簽, 總計不超過253個字符,后跟斜杠(?/?)。 如果省略前綴,則假定注解鍵對用戶是私有的。 由系統(tǒng)組件添加的注解 (例如,?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.7.9
    ports:
    - containerPort: 80


以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號