eci-profile支援ECI Effect能力,可以為滿足條件的Pod自動追加Annotation來使用ECI的功能特性。本文介紹如何配置eci-profile,為特定Pod自動追加Annotation來使用ImageCache功能。
配置說明
基於eci-profile的ECI Effect能力,在eci-profile設定檔的selectors中,支援以數組的形式聲明需要匹配的Namespace或者Pod的Label,以及需要動態追加的ImageCache相關Annotation。對於Label能夠匹配上的Pod,將自動追加配置的Annotation。
更多關於eci-profile的資訊,請參見配置eci-profile。
支援為Pod添加的ImageCache相關Annotation如下:
使用方式 | 配置項 | 樣本值 | 說明 |
自動匹配 | k8s.aliyun.com/eci-auto-imc | "true" | 是否自動匹配ImageCache,預設為true,表示系統會根據匹配策略自動匹配最優的ImageCache建立Pod。匹配策略的優先順序從高到低依次為:鏡像匹配度、匹配的鏡像大小、建立時間。 如果沒有完全符合,系統會在建立Pod的同時自動建立對應的ImageCache。 |
k8s.aliyun.com/imc-perfect-match | "true" | Pod內所有容器鏡像是否均要完全符合ImageCache。預設為false。 | |
k8s.aliyun.com/imc-match-count-request | "2" | Pod內要完全符合ImageCache的容器鏡像個數。 | |
明確指定 | k8s.aliyun.com/eci-imc-id | imc-2zebxkiifuyzzlhl**** | 明確指定使用某個ImageCache存建立Pod。 |
selectors說明如下:
selectors: |
[
{
"name":"demo", #必填,不可為空
"namespaceSelector":{ #選填,匹配Namespace Label
"matchLabels":{ #需要匹配的Label,如果填寫多個,為與關係
"app":"nginx"
}
},
"objectSelector":{ #選填,匹配Pod Label
"matchLabels":{ #需要匹配的Label,如果填寫多個,為與關係
"type":"test"
}
},
"effect":{ #需要動態追加的Annotation
"annotations":{
"k8s.aliyun.com/eci-auto-imc": "true"
}
}
}
]
配置selectors後,您可以通過以下命令確認selectors是否生效。如果返回的YAML中已包含配置的selectors,則表示配置成功;如果未包含selectors,請檢查selectors的格式是否有誤。
kubectl get mutatingwebhookconfigurations -o yaml vk-webhook
配置樣本
編輯eci-profile設定檔。
kubectl -n kube-system edit cm eci-profile
在selectors中添加以下樣本內容:
[
...
{
"name":"image-cache-selector-1",
"objectSelector":{
"matchLabels":{
"image-cache":"true"
}
},
"effect": {
"annotations": {
"k8s.aliyun.com/eci-imc-id": "imc-uf6ic***************"
}
}
},
{
"name":"image-cache-selector-2",
"namespaceSelector":{
"matchLabels":{
"image-cache":"true"
}
},
"effect": {
"annotations": {
"k8s.aliyun.com/eci-auto-imc": "true"
}
}
}
]
上述配置包含了2個selector:
image-cache-selector-1:如果Pod帶有
image-cache: true
的Label,將自動追加"k8s.aliyun.com/eci-imc-id": "imc-uf6ic***************"
的Annotation,使用指定的鏡像緩衝。image-cache-selector-2:如果Pod所屬Namespace帶有
image-cache: true
的Label,將自動追加"k8s.aliyun.com/eci-auto-imc": "true"
的Annotation,開啟自動匹配鏡像緩衝。