拉取自建鏡像倉庫中的鏡像時,可能會碰到因協議不同、認證認證失敗或者使用了自建DNS伺服器而導致鏡像拉取失敗的問題。本文介紹在自建鏡像倉庫採用HTTP協議和使用自簽發認證或者自建DNS伺服器的情況下,如何拉取自建鏡像倉庫中的鏡像來建立ACS工作負載。
功能說明
拉取自建鏡像倉庫中的鏡像時,可能會碰到“ErrImagePull”警示事件,出現鏡像拉取失敗的情況。在保證ACS執行個體與鏡像倉庫網路連通的前提下,問題的原因和解決方案如下:
情境 | 原因 | 解決方案 |
自建鏡像倉庫採用HTTP協議。 | ACS預設使用HTTPS協議拉取鏡像,協議不同導致鏡像拉取失敗。 | 配置ACS使用HTTP協議與鏡像倉庫進行互動。 |
自建鏡像倉庫採用HTTPS協議,但使用的認證是自簽發認證。 | 使用自簽發認證的情況下,拉取鏡像時無法通過認證認證,導致鏡像拉取失敗。 | 配置跳過認證認證。 |
自建鏡像倉庫的網域名稱使用自建的DNS伺服器。 | ACS預設使用阿里雲DNS(100.100.2.136、100.100.2.138)解析鏡像倉庫,如果鏡像倉庫的網域名稱記錄存在您自建的DNS伺服器,就會導致鏡像拉取失敗。 |
配置說明
如果需要拉取自建鏡像倉庫的鏡像,且自建鏡像倉庫採用HTTP協議,或者使用自簽發認證時,需在容器組(Pod)上配置下列註解,以避免鏡像拉取失敗。
名稱 | 類型 | 樣本值 | 描述 |
| String |
| 拉取採用HTTP協議的自建鏡像倉庫中的鏡像時,需配置該參數,使得ACS使用HTTP協議拉取鏡像,避免因協議不同而導致鏡像拉取失敗。 |
| String |
| 拉取使用自簽發認證的自建鏡像倉庫中的鏡像時,需要配置該參數來跳過認證認證,以避免因認證認證失敗而導致鏡像拉取失敗。 |
如果有多個容器的鏡像需要從不同的鏡像倉庫中拉取,支援填寫多個鏡像倉庫地址,各個地址之間採用英文半形逗號(,)隔開,例如harbor***.pre.com,192.168.XX.XX。
下面以無狀態應用為例:
登入容器計算服務控制台,在左側導覽列選擇叢集。
在叢集頁面,單擊目的地組群ID,然後在左側導覽列,選擇。
在無狀態頁面,單擊使用鏡像建立。
在您填寫完應用基本資料後,點擊下一步。
填寫完容器配置後,點擊下一步。
在進階配置頁面中,根據您自己的需求,在Pod註解中填入上述配置,比如您需要配置
registry.alibabacloud.com/plain-http-registry和registry.alibabacloud.com/insecure-registry,按照下圖完成配置後,單擊建立按鈕。