在很多場景下,您需要用到私有鏡像倉庫中的鏡像進行應用的部署,本文介紹如何使用阿里云鏡像倉庫服務創建一個私有的鏡像倉庫,并且創建一個使用該私有鏡像倉庫的應用。

創建私有鏡像庫

如果您是首次使用阿里云容器鏡像服務,會彈出提示需要您設置Registry登錄密碼,請單擊前往開通,并根據界面提示,設置Registry登錄密碼。

  1. 登錄容器鏡像服務控制臺。
  2. 在頂部菜單欄,選擇所需地域。
  3. 在左側導航欄,選擇實例列表。
  4. 實例列表頁面單擊個人版實例。
  5. 在個人實例管理頁面選擇倉庫管理 > 鏡像倉庫。
  6. 鏡像倉庫頁面左上角選擇創建鏡像倉庫。
  7. 倉庫信息配置向導中設置命名空間倉庫名稱、摘要倉庫類型,本例選擇私有鏡像倉庫類型。然后單擊下一步。
  8. 代碼源配置向導中,將代碼源設為本地倉庫,然后單擊創建鏡像倉庫。
    說明 在鏡像倉庫列表下,單擊目標鏡像倉庫的名稱。在基本信息頁面的操作指南頁簽,可以查看如何使用該私有鏡像倉庫。
  9. 執行以下命令,登錄鏡像倉庫。
    說明
    • 如果您使用的是阿里云賬號,阿里云賬號就是您的鏡像倉庫登錄名。
    • 如果您使用的是RAM用戶,去掉RAM用戶賬號.onaliyun.com后的名稱就是您的鏡像倉庫登錄名。例如您的RAM用戶為123@1880770869021234.onaliyun.com,則您的鏡像倉庫登錄名為123@1880770869021234。
    sudo docker login --username=<鏡像倉庫登錄名> registry.cn-<個人版實例所在的地域>.aliyuncs.com

    返回結果中輸入登錄密碼,然后顯示login succeeded,表示登錄成功。

  10. 執行以下命令,查看鏡像ID。
    docker images     
  11. 執行以下命令,設置鏡像標簽。
    sudo docker tag <鏡像ID> registry.cn-hangzhou.aliyuncs.com/<命名空間名稱>/<鏡像倉庫名稱>:[鏡像版本號]
  12. 執行以下命令,推送鏡像至鏡像倉庫。
    sudo docker push registry.cn-hangzhou.aliyuncs.com/<命名空間名稱>/<鏡像倉庫名稱>:[鏡像版本號]

    預期輸出:

    The push refers to a repository [registry.cn-hangzhou.aliyuncs.com/XXX/tomcat-private]
    9072c7b03a1b: Pushed
    f9701cf47c58: Pushed
    365c8156ff79: Pushed
    2de08d97c2ed: Pushed
    6b09c39b2b33: Pushed
    4172ffa172a6: Pushed
    1dccf0da88f3: Pushed
    d2070b14033b: Pushed
    63dcf81c7ca7: Pushed
    ce6466f43b11: Pushed
    719d45669b35: Pushed
    3b10514a95be: Pushed
    V1: digest: sha256:cded14cf64697961078aedfdf870e704a52270188c8194b6f70c778a8289**** size: 2836
    在鏡像倉庫詳情頁,單擊左側導航欄中的鏡像版本,您可以看到鏡像已成功上傳,并可查看鏡像的版本信息。

創建私有鏡像倉庫登錄密鑰類型的密鑰

如果拉取私有鏡像的話,您需要使用私有鏡像倉庫登錄密鑰類型的密鑰進行拉取。

  1. 登錄容器服務管理控制臺
  2. 在控制臺左側導航欄中,單擊集群。
  3. 集群列表頁面中,單擊目標集群名稱或者目標集群右側操作列下的詳情
  4. 在集群管理頁左側導航欄中,選擇配置管理 > 保密字典
  5. 保密字典頁面右上角,單擊創建。
  6. 創建頁面配置參數,然后單擊確定
    參數 描述
    名稱 保密字典名稱。
    類型 保密字典類型:
    • Opaque:一般密鑰類型。輸入鍵、值。值必須使用Base64編碼。
    • 私有鏡像倉庫登錄密鑰:存放拉取私有倉庫鏡像所需的認證信息。輸入鏡像倉庫地址及用戶名和密碼。
      說明 用戶名和密碼為阿里云賬號全名和開通服務時所設密碼。您可以在訪問憑證頁面修改密碼。
    • TLS證書:TLS是一種用來對身份進行驗證的機制。
      • Cert:填寫TLS證書信息。
      • Key:填寫TLS的私鑰信息。
    默認返回保密字典頁面,您可看到新建的密鑰出現在列表中。
說明

您也可以通過命令行創建私有鏡像倉庫登錄密鑰類型的密鑰,請參見通過kubectl連接Kubernetes集群。

通過私有鏡像倉庫創建應用

  1. 登錄容器服務管理控制臺。
  2. 在控制臺左側導航欄中,單擊集群。
  3. 集群列表頁面中,單擊目標集群名稱或者目標集群右側操作列下的詳情。
  4. 在集群管理頁左側導航欄中,選擇工作負載 > 無狀態
  5. 無狀態頁面右上角,單擊使用YAML創建資源。
    說明 您也可以通過單擊使用鏡像創建來創建應用。請參見使用鏡像密鑰創建應用。
  6. 示例模板設置為自定義,并將以下YAML內容復制到模板中。
    apiVersion: apps/v1 
    kind: Deployment 
    metadata: 
      name: private-image
      nameSpace: default  
      labels:  
        app: private-image  
    spec:   
      replicas: 1
      selector:
        matchLabels:
          app: private-image
      template:
        metadata:
          labels:
            app: private-image
        spec:
          containers:
          - name: private-image
            image: registry.cn-hangzhou.aliyuncs.com/命名空間名稱/tomcat-private:latest
            ports:
            - containerPort: 8080
          imagePullSecrets:
          - name: regsecret
  7. 單擊創建。
    返回無狀態應用列表,查看使用私有鏡像倉庫創建的應用。

更多內容請參見Kubernetes官方文檔使用私有倉庫。