對於使用Docker容器鏡像部署的情境,推薦使用容器鏡像部署物。計算巢提供了公用的ACR容器鏡像執行個體用來託管儲存,一個服務商對應一個命名空間進行多租戶隔離。本文為您介紹容器鏡像部署物使用情境與原理,以及如何建立和使用容器鏡像部署物。
使用情境
通過公網拉取但希望私人化部署的Docker容器鏡像,可使用容器鏡像部署物通過臨時密鑰實現服務部署。
容器鏡像部署物不支援後續的彈性自動調整或動態任務頻繁拉取的需求。
實現原理
由於多個服務商的容器鏡像存放在一個鏡像倉庫中,為了實現多租戶隔離,目前採用一個服務商對應一個命名空間的方式進行容器鏡像存放,在上傳和拉取時根據服務商AliUid擷取對應命名空間的臨時密鑰,許可權控制以命名空間為維度。
應用原理
需要在服務的ROS模板中定義以下兩個標識,在部署時進行替換。
-
{{ computenest::acrimage::yourimage }}容器鏡像部署物標識位,計算巢會在部署服務範本時進行替換,替換為關聯部署物對應的容器鏡像地址,如compute-nest-registry.cn-hangzhou.cr.aliyuncs.com/aliUid1/volcanosh/vc-controller-manager:1.0 -
{{ computenest::acr::dockerconfigjson }}容器鏡像倉庫拉取密鑰標識位,在部署時會替換為容器鏡像拉取臨時密鑰,用來進行私人容器鏡像的拉取。
使用容器鏡像部署物進行部署的樣本YAML,可以看到拉取密鑰{{ computenest::acr::dockerconfigjson }}部署成了Secret computenestrepo,作為容器鏡像部署物的imagePullSecret去拉取部署物替換後的容器鏡像。
建立並使用
前提條件
已安裝Docker並製作Docker鏡像。如果您沒有,請參見Docker的安裝與使用。
建立容器鏡像部署物
-
配置部署物的基本資料。
-
登入計算巢控制台,在左側導覽列選擇服務部署物,並在部署物地區中單擊建立部署物。
-
在部署物資訊地區,完成部署物資訊填寫。
配置項
說明
部署物名稱
由中文、數字、英文及底線組成,長度在 3~128 個字元之間,一個中文字等於 2 個字元,部署物名稱建立後不可修改。
部署物版本名稱
由中文、數字、英文及底線組成,長度在 3~50 個字元之間,一個中文字等於 2 個字元。
部署物描述
簡介長度在10-500個字元之間,一個中文字等於2個字元。
資源群組
選擇建立的部署所歸屬的資源群組名稱。
資源群組對您擁有的雲資源從用途、許可權、歸屬等維度進行分組,實現企業內部多使用者、多專案的資源分級管理。更多資訊,請參見資源群組。
標籤配置
選擇或填寫完整的標籤鍵和標籤值,為部署物定標籤。每個資源最多可綁定20列標籤。若無可選的標籤鍵和標籤值,可建立自訂標籤。建立自訂標籤的詳細操作,請參見建立並綁定自訂標籤。
-
-
配置容器鏡像部署物。
本節以上傳
apache-php5鏡像為例。-
在部署物內容區塊,選擇部署物類型為容器鏡像。
-
單擊擷取訪問憑證,可以獲得上傳容器鏡像到計算巢倉庫的命令。
擷取訪問憑證後,頁面展示操作命令:使用
docker login命令登入計算巢鏡像倉庫,填寫鏡像名稱和標籤(如latest)後,使用docker tag命令對本地鏡像打標,再使用docker push命令將已打標的鏡像推送至倉庫。-
登入命令列工具,輸入登入命令登入計算巢鏡像倉庫。
docker login compute-nest-registry.cn-hangzhou.cr.aliyuncs.com --username=cr_temp_user --password=<臨時Token> -
將您的容器鏡像進行計算巢鏡像倉庫打標。
docker tag registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5:latest compute-xxx-ry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5:latest -
推送已打標的容器鏡像。
docker push compute-nest-registry.cn-hangzhou.cr.aliyuncs.com/156345785543852/registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5:latest The push refers to repository [compute-nest-registry.cn-hangzhou.cr.aliyuncs.com/156345785543852/registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5] 6bb81559e239: Pushed cea911103474: Pushed cc523d99ead5: Pushed b00b1ec7b8ef: Pushed 7715ecdbe18e: Pushed 5e755f0e0b5c: Pushed 2a1ce34e52b6: Pushed 28dc854edc91: Pushed 24fc817b31ed: Pushed 7cd75a52f72c: Pushed 05b156d2bc54: Pushed 8cc36998586f: Pushed ab73fa68e475: Pushed dbf739521f53: Pushed 3e019add9ad9: Pushed 18e3751aa1ef: Pushed 4eb95f543324: Pushed a594229cce80: Pushed 69a54e38f06b: Pushed d2808f8124fd: Pushed fe4c16cbf7a4: Pushed latest: digest: sha256:2afcd2b89f317e0570325817f4e8d9c93f12ac781779e365e456ae37aa297f7a size: 4700
-
-
執行成功後,在選擇容器鏡像中選取上傳的容器鏡像,並單擊發布部署物。
-
-
查看部署物。
-
返回服務部署物頁面,單擊部署物名稱,進入部署物詳情介面查看部署進度。
-
當狀態為可用時,表示建立完成。
-
使用容器鏡像部署物
本節以建立私人化部署服務為例,重點介紹在建立服務時使用容器鏡像部署物相關配置。
-
登入計算巢控制台。
-
在左側導覽列中選擇我的服務,在我建立的服務地區下單擊建立新服務。
-
在建立新服務頁面,建立服務的方式選擇為自訂建立服務,服務類型選擇為私有部署服務,單擊下一步:佈建服務。
-
根據提示填入服務基本資料,根據實際情況進行選擇並輸入ROS模板。
在服務ROS模板
ALIYUN::CS::ClusterApplication資源中定義訪問憑證標識位{{ computenest::acr::dockerconfigjson }}和容器鏡像部署物標識{{ computenest::acrimage::yourimage }} -
在部署物關聯區塊中設定容器鏡像關聯。單擊選擇部署物,在彈框中選擇部署物和版本,最後單擊確定完成容器鏡像部署物替換。
-
完成服務的建立,並測試通過後, 請根據計算巢服務的發布審核標準進行自檢,並提交審核。發布審核標準的詳細資料,請參見發布審核標準。
-
服務建立完成後,可以在服務詳情頁查看部署物關聯關係。
在服務詳情頁的部署關聯頁簽下,單擊容器鏡像關聯子頁簽,可查看關聯標誌符(如
{{ computenest::acrimage::nginx }})與對應的部署物資訊。