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,開啟自動匹配鏡像緩存。