本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 Amazon ECR 中建立提取快取規則
對於每個上游登錄檔,包含您想要在 Amazon ECR 私有登錄檔中快取的影像,您必須建立提取快取規則。
對於需要身分驗證的上游登錄檔,您必須將登入資料存放在 Secrets Manager 秘密中。您可以使用現有的秘密或建立新的秘密。您可以在 Amazon ECR 主控台或 Secrets Manager 主控台中建立 Secrets Manager 秘密。若要使用 Secrets Manager 主控台而非 Amazon ECR 主控台建立 Secrets Manager 秘密,請參閱 將上游儲存庫登入資料存放在 AWS Secrets Manager 秘密中。
先決條件
-
確認您擁有適當的 IAM 許可來建立提取快取規則。如需相關資訊,請參閱 將上游登錄檔與 Amazon ECR 私有登錄檔同步所需的 IAM 許可。
-
對於需要身分驗證的上游登錄:如果您想要使用現有的秘密,請確認 Secrets Manager 秘密符合下列要求:
-
秘密的名稱開頭為
ecr-pullthroughcache/
。 AWS Management Console 只會顯示具有ecr-pullthroughcache/
字首的 Secrets Manager 秘密。 -
秘密所在的帳戶和區域必須與提取快取規則所在的帳戶和區域相符。
-
建立提取快取規則 (AWS Management Console)
下列步驟說明如何使用 Amazon ECR 主控台建立提取快取規則和 Secrets Manager 秘密。若要使用 Secrets Manager 主控台建立秘密,請參閱 將上游儲存庫登入資料存放在 AWS Secrets Manager 秘密中。
在 https://console.aws.amazon.com/ecr/
開啟 Amazon ECR 主控台。 -
從導覽列選擇要在其中進行私有登錄檔設定的區域。
-
在導覽窗格中,選擇 Private registry (私有登錄檔)、Pull through cache (提取快取)。
-
在 Pull through cache configuration (提取快取組態) 頁面上,選擇 Add rule (新增規則)。
-
在步驟 1:指定來源頁面上,針對登錄檔,從上游登錄檔清單中選擇 Amazon ECR 公共、Kubernetes 或 Quay,接著選擇下一步。
-
在步驟 2:指定目的地頁面上,針對 Amazon ECR 儲存庫字首,指定快取從來源公有登錄檔提取的映像時要使用的儲存庫命名空間字首,接著選擇下一步。預設會填入命名空間,但也可以指定自訂命名空間。
-
在步驟 3:檢閱並建立頁面上,檢閱提取快取規則組態,接著選擇建立。
-
為要建立的每個提取快取重複前面的步驟。系統會針對每個區域分別建立提取快取規則。
在 https://console.aws.amazon.com/ecr/
開啟 Amazon ECR 主控台。 -
從導覽列選擇要在其中進行私有登錄檔設定的區域。
-
在導覽窗格中,選擇 Private registry (私有登錄檔)、Pull through cache (提取快取)。
-
在 Pull through cache configuration (提取快取組態) 頁面上,選擇 Add rule (新增規則)。
-
在步驟 1:指定來源頁面上,針對登錄檔選擇 Docker Hub、下一步。
-
在步驟 2:設定身分驗證頁面上,針對上游憑證,您必須將 Docker Hub 的身分驗證憑證儲存在 AWS Secrets Manager 秘密中。您可以指定現有秘密,或使用 Amazon ECR 主控台建立新秘密。
-
若要使用現有的秘密,請選擇使用現有的 AWS 秘密。針對秘密名稱,使用下拉式選單選取您現有的秘密,接著選擇下一步。
注意
AWS Management Console 只會顯示 Secrets Manager 秘密,其中包含使用
ecr-pullthroughcache/
字首的名稱。秘密也必須位於在其中建立提取快取規則的相同帳戶和區域中。 -
若要建立新秘密,請選擇建立 AWS 秘密,執行下列動作,接著選擇下一步。
-
針對秘密名稱,指定秘密的描述性名稱。秘密名稱必須含有 1 至 512 個 Unicode 字元。
-
針對 Docker Hub 電子郵件,指定您的 Docker Hub 電子郵件。
-
針對 Docker Hub 存取字符,請指定您的 Docker Hub 存取字符。如需建立 Docker Hub 存取字符的詳細資訊,請參閱 Docker 文件中的建立和管理存取字符
。
-
-
-
在步驟 3:指定目的地頁面上,針對 Amazon ECR 儲存庫字首,指定快取從來源公有登錄檔提取的映像時要使用的儲存庫命名空間,接著選擇下一步。
預設會填入命名空間,但也可以指定自訂命名空間。
-
在步驟 4:檢閱並建立頁面上,檢閱提取快取規則組態,接著選擇建立。
-
為要建立的每個提取快取重複前面的步驟。系統會針對每個區域分別建立提取快取規則。
在 https://console.aws.amazon.com/ecr/
開啟 Amazon ECR 主控台。 -
從導覽列選擇要在其中進行私有登錄檔設定的區域。
-
在導覽窗格中,選擇 Private registry (私有登錄檔)、Pull through cache (提取快取)。
-
在 Pull through cache configuration (提取快取組態) 頁面上,選擇 Add rule (新增規則)。
-
在步驟 1:指定來源頁面上,針對登錄檔選擇 GitHub Container Registry、下一步。
-
在步驟 2:設定身分驗證頁面上,針對上游憑證,您必須將 GitHub Container Registry 的身分驗證憑證儲存在 AWS Secrets Manager 秘密中。您可以指定現有秘密,或使用 Amazon ECR 主控台建立新秘密。
-
若要使用現有的秘密,請選擇使用現有的 AWS 秘密。針對秘密名稱,使用下拉式選單選取您現有的秘密,接著選擇下一步。
注意
AWS Management Console 只會顯示 Secrets Manager 秘密,其中包含使用
ecr-pullthroughcache/
字首的名稱。秘密也必須位於在其中建立提取快取規則的相同帳戶和區域中。 -
若要建立新秘密,請選擇建立 AWS 秘密,執行下列動作,接著選擇下一步。
-
針對秘密名稱,指定秘密的描述性名稱。秘密名稱必須含有 1 至 512 個 Unicode 字元。
-
針對 GitHub Container Registry 使用者名稱,請指定您的 GitHub Container Registry 使用者名稱。
-
對於 GitHub Container Registry 存取字符,請指定您的 GitHub Container Registry 存取字符。如需建立 GitHub 存取字符的詳細資訊,請參閱 GitHub 文件中的管理個人存取權字符
。
-
-
-
在步驟 3:指定目的地頁面上,針對 Amazon ECR 儲存庫字首,指定快取從來源公有登錄檔提取的映像時要使用的儲存庫命名空間,接著選擇下一步。
預設會填入命名空間,但也可以指定自訂命名空間。
-
在步驟 4:檢閱並建立頁面上,檢閱提取快取規則組態,接著選擇建立。
-
為要建立的每個提取快取重複前面的步驟。系統會針對每個區域分別建立提取快取規則。
在 https://console.aws.amazon.com/ecr/
開啟 Amazon ECR 主控台。 -
從導覽列選擇要在其中進行私有登錄檔設定的區域。
-
在導覽窗格中,選擇 Private registry (私有登錄檔)、Pull through cache (提取快取)。
-
在 Pull through cache configuration (提取快取組態) 頁面上,選擇 Add rule (新增規則)。
-
在步驟 1:指定來源頁面上,執行下列動作。
-
針對登錄檔,選擇 Microsoft Azure Container Registry
-
針對來源登錄檔 URL,指定 Microsoft Azure Container Registry 的名稱,接著選擇下一步。
重要
您只需要指定字首,因為會代表您填入
.azurecr.io
字尾。
-
-
在步驟 2:設定身分驗證頁面上,針對上游憑證,您必須將 Microsoft Azure Container Registry 的身分驗證憑證儲存在 AWS Secrets Manager 秘密中。您可以指定現有秘密,或使用 Amazon ECR 主控台建立新秘密。
-
若要使用現有的秘密,請選擇使用現有的 AWS 秘密。針對秘密名稱,使用下拉式選單選取您現有的秘密,接著選擇下一步。
注意
AWS Management Console 只會顯示 Secrets Manager 秘密,其中包含使用
ecr-pullthroughcache/
字首的名稱。秘密也必須位於在其中建立提取快取規則的相同帳戶和區域中。 -
若要建立新秘密,請選擇建立 AWS 秘密,執行下列動作,接著選擇下一步。
-
針對秘密名稱,指定秘密的描述性名稱。秘密名稱必須含有 1 至 512 個 Unicode 字元。
-
對於 Microsoft Azure Container Registry 使用者名稱,請指定您的 MMicrosoft Azure Container Registry 使用者名稱。
-
對於 Microsoft Azure Container Registry 存取字符,請指定您的 Microsoft Azure Container Registry 存取字符。如需建立 Microsoft Azure Container Registry 存取字符的詳細資訊,請參閱 Microsoft Azure 文件中的建立字符 - 入口網站
。
-
-
-
在步驟 3:指定目的地頁面上,針對 Amazon ECR 儲存庫字首,指定快取從來源公有登錄檔提取的映像時要使用的儲存庫命名空間,接著選擇下一步。
預設會填入命名空間,但也可以指定自訂命名空間。
-
在步驟 4:檢閱並建立頁面上,檢閱提取快取規則組態,接著選擇建立。
-
為要建立的每個提取快取重複前面的步驟。系統會針對每個區域分別建立提取快取規則。
在 https://console.aws.amazon.com/ecr/
開啟 Amazon ECR 主控台。 -
從導覽列選擇要在其中進行私有登錄檔設定的區域。
-
在導覽窗格中,選擇 Private registry (私有登錄檔)、Pull through cache (提取快取)。
-
在 Pull through cache configuration (提取快取組態) 頁面上,選擇 Add rule (新增規則)。
-
在步驟 1:指定來源頁面上,針對登錄檔,選擇 GitLab Container Registry,下一步。
-
在步驟 2:設定身分驗證頁面上,對於上游登入資料,您必須將 GitLab Container Registry 的身分驗證登入資料存放在秘密中 AWS Secrets Manager 。您可以指定現有秘密,或使用 Amazon ECR 主控台建立新秘密。
-
若要使用現有的秘密,請選擇使用現有的 AWS 秘密。針對秘密名稱,使用下拉式選單選取您現有的秘密,接著選擇下一步。如需有關使用 Secrets Manager 主控台建立 Secrets Manager 秘密的詳細資訊,請參閱 將上游儲存庫登入資料存放在 AWS Secrets Manager 秘密中。
注意
AWS Management Console 只會顯示 Secrets Manager 秘密,其中包含使用
ecr-pullthroughcache/
字首的名稱。秘密也必須位於在其中建立提取快取規則的相同帳戶和區域中。 -
若要建立新秘密,請選擇建立 AWS 秘密,執行下列動作,接著選擇下一步。
-
-
在步驟 3:指定目的地頁面上,針對 Amazon ECR 儲存庫字首,指定快取從來源公有登錄檔提取的映像時要使用的儲存庫命名空間,接著選擇下一步。
預設會填入命名空間,但也可以指定自訂命名空間。
-
在步驟 4:檢閱並建立頁面上,檢閱提取快取規則組態,接著選擇建立。
-
為要建立的每個提取快取重複前面的步驟。系統會針對每個區域分別建立提取快取規則。
建立提取快取規則 (AWS CLI)
使用 create-pull-through-cache-rule AWS CLI 命令來建立 Amazon ECR 私有登錄檔的提取快取規則。針對需要身分驗證的上游登錄檔,您必須將憑證儲存在 Secrets Manager 秘密中。若要使用 Secrets Manager 主控台建立秘密,請參閱 將上游儲存庫登入資料存放在 AWS Secrets Manager 秘密中。
提供給每個受支援的登錄檔的下列範例。
下列範例會為 Amazon ECR Public 登錄檔建立提取快取規則。其會指定 ecr-public
的儲存庫字首,這會導致使用提取快取規則建立的每個儲存庫具有 ecr-public/
的命名規則。upstream-repository-name
aws ecr create-pull-through-cache-rule \ --ecr-repository-prefix
ecr-public
\ --upstream-registry-url public.ecr.aws \ --regionus-east-2
下列範例會為 Kubernetes 公有登錄檔建立提取快取規則。其會指定 kubernetes
的儲存庫字首,這會導致使用提取快取規則建立的每個儲存庫具有 kubernetes/
的命名規則。upstream-repository-name
aws ecr create-pull-through-cache-rule \ --ecr-repository-prefix
kubernetes
\ --upstream-registry-url registry.k8s.io \ --regionus-east-2
下列範例會為 Quay 公有登錄檔建立提取快取規則。其會指定 quay
的儲存庫字首,這會導致使用提取快取規則建立的每個儲存庫具有 quay/
的命名規則。upstream-repository-name
aws ecr create-pull-through-cache-rule \ --ecr-repository-prefix
quay
\ --upstream-registry-url quay.io \ --regionus-east-2
下列範例會為 Docker Hub 登錄檔建立提取快取規則。其會指定 docker-hub
的儲存庫字首,這會導致使用提取快取規則建立的每個儲存庫具有 docker-hub/
的命名規則。您必須指定秘密包含 Docker Hub 憑證的完整 Amazon Resource Name (ARN)。upstream-repository-name
aws ecr create-pull-through-cache-rule \ --ecr-repository-prefix
docker-hub
\ --upstream-registry-url registry-1.docker.io \ --credential-arn arn:aws:secretsmanager:us-east-2
:111122223333
:secret:ecr-pullthroughcache/example1234
\ --regionus-east-2
下列範例會建立 GitHub Container Registry 的提取快取規則。其會指定 docker-hub
的儲存庫字首,這會導致使用提取快取規則建立的每個儲存庫具有 github/
的命名規則。您必須指定秘密包含 GitHub Container Registry 憑證的完整 Amazon Resource Name (ARN)。upstream-repository-name
aws ecr create-pull-through-cache-rule \ --ecr-repository-prefix
github
\ --upstream-registry-url ghcr.io \ --credential-arn arn:aws:secretsmanager:us-east-2
:111122223333
:secret:ecr-pullthroughcache/example1234
\ --regionus-east-2
下列範例會建立 Microsoft Azure Container Registry 的提取快取規則。其會指定 azure
的儲存庫字首,這會導致使用提取快取規則建立的每個儲存庫具有 azure/
的命名規則。您必須指定秘密包含 Microsoft Azure Container Registry 憑證的完整 Amazon Resource Name (ARN)。upstream-repository-name
aws ecr create-pull-through-cache-rule \ --ecr-repository-prefix
azure
\ --upstream-registry-urlmyregistry
.azurecr.io \ --credential-arn arn:aws:secretsmanager:us-east-2
:111122223333
:secret:ecr-pullthroughcache/example1234
\ --regionus-east-2
下列範例會建立 GitLab Container Registry 的提取快取規則。其會指定 gitlab
的儲存庫字首,這會導致使用提取快取規則建立的每個儲存庫具有 gitlab/
的命名規則。您必須指定包含 GitLab Container Registry 登入資料之秘密的完整 Amazon Resource Name (ARN)。upstream-repository-name
aws ecr create-pull-through-cache-rule \ --ecr-repository-prefix
gitlab
\ --upstream-registry-url registry.gitlab.com \ --credential-arn arn:aws:secretsmanager:us-east-2
:111122223333
:secret:ecr-pullthroughcache/example1234
\ --regionus-east-2
後續步驟
建立提取快取規則之後,下列步驟如下:
-
建立儲存庫建立範本。儲存庫建立範本賦予您控制權,於提取快取動作期間,定義用於 Amazon ECR 代表您建立的新儲存庫的設定。如需詳細資訊,請參閱用於控制提取快取或複寫動作期間建立的儲存庫的範本。
-
驗證提取快取規則。驗證提取快取規則時,Amazon ECR 會與上游登錄檔建立網路連線、驗證其是否可存取包含上游登錄檔憑證的 Secrets Manager 秘密,以及身分驗證是否成功。如需詳細資訊,請參閱驗證 Amazon ECR 中的提取快取規則。
-
開始使用提取快取規則。如需詳細資訊,請參閱在 Amazon ECR 中使用提取快取規則提取映像。