若您需要跨地區或從IDC訪問ACR企業版來推送或拉取鏡像,您需確保訪問源和被訪問ACR企業版執行個體的VPC網路互連。本文介紹如何擷取訪問ACR企業版執行個體的IP,以及配置路由,實現在ACR企業版執行個體所在地區之外推送或拉取鏡像。
使用情境
情境 | 描述 | 操作說明 |
本機資料中心訪問ACR企業版執行個體 | 您可以利用VPN網關、Express Connect物理專線或Smart Access Gateway,將本機資料中心與雲上可以訪問ACR企業版執行個體的VPC串連,實現從本機資料中心訪問ACR企業版執行個體的功能。 |
|
跨地區訪問ACR企業版執行個體 | 您可以通過雲企業網(CEN)跨地區串連功能,將雲上VPC與ACR企業版執行個體相連,以實現跨地區訪問ACR企業版執行個體。 說明 若您有雲上多地區容器鏡像拉取需求,建議您使用多個地區企業版執行個體支援,並使用ACR企業版執行個體的全球同步能力同步鏡像。具體操作,請參見同帳號同步執行個體。 |
|
使用說明
本樣本將示範如何在同一個帳號下,在華東2(上海)跨地區訪問華東1(杭州)的ACR企業版執行個體。環境資訊如下:
VPC1
地區:華東1(杭州)
IPv4網段:10.0.0.0/16
交換器1,位於可用性區域J,網段: 10.0.0.0/24
交換器2,位於可用性區域K,網段:10.0.1.0/24 (在2個不同的可用性區域分別建立交換器,用於多可用性區域容災)
ECS1地址:10.0.0.1 (ECS用於驗證連通性)
VPC2
地區:華東2(上海)
IPv4網段:172.16.0.0/16
交換器1,位於可用性區域M,網段:172.16.0.0/24
交換器2,位於可用性區域N,網段:172.16.1.0/24
ECS2地址:172.16.0.1
操作流程如下:
跨地區串連:確保華東1(杭州)與華東2(上海)已通過雲企業網成功跨地區串連。操作詳情請參見跨地區VPC互連。
在華東1(杭州)地區擷取以下三個網域名稱資訊:
說明同地區的ECS確保使用內網訪問目標Container Registry企業版執行個體。詳情請參見配置專用網路的存取控制。
ACR企業版執行個體網域名稱:通常用於鏡像拉取和推送的介面訪問。
認證服務的網域名稱:用於身份認證相關的通訊。
執行個體關聯的OSS Bucket網域名稱:用於儲存和訪問鏡像的Object Storage Service服務。
配置路由表:將擷取的IP地址或網段添加到需要訪問的網路路由表中,以確保它們可以通過雲企業網進行跨地區訪問。
在華東2(上海)驗證訪問華東1(杭州)的ACR企業版執行個體。
步驟一:跨地區串連
華東1(杭州)與華東2(上海)地區相關VPC1和VPC2,通過雲企業網配置跨地區VPC互連。
步驟二:擷取網域名稱資訊
請確保以下三種網域名稱的IP不能與原端已有服務的IP衝突,否則將導致原端的服務在本地無法訪問。
登入華東1(杭州)的ECS1,根據以下步驟擷取OSS Bucket、ACR企業版執行個體和認證服務在VPC中的對應三個IP地址。
擷取ACR企業版執行個體VPC訪問IP。
在頂部功能表列,選擇所需地區。
在左側導覽列,選擇實例列表。
在實例列表頁面單擊目標企業版執行個體。
在企業版執行個體管理頁面左側導覽列中選擇。
在专有网络頁簽下,複製ACR企業版執行個體VPC訪問網域名稱。然後在ECS上使用
ping命令訪問網域名稱,擷取相應IP並記錄。
擷取認證服務在VPC中的IP。
說明可開啟執行個體接管認證網域名稱跳過此步驟。
執行以下命令,擷取認證服務在VPC中的網域名稱。
InstanceName為ACR企業版執行個體名稱,RegionId為所在地區。curl -vv https://${InstanceName}-registry-vpc.${RegionId}.cr.aliyuncs.com/v2/命令返回類似輸出,其中
www-authenticate回應標頭的 Bearer realm 值即為認證服務在 VPC 中的網域名稱,例如https://dockerauth-vpc.cn-hangzhou.aliyuncs.com/auth。* successfully set certificate verify locations: * CAfile: /etc/pki/tls/certs/ca-bundle.crt CApath: none * TLSv1.3 (OUT), TLS handshake, Client hello (1): * TLSv1.3 (IN), TLS handshake, Server hello (2): * TLSv1.2 (IN), TLS handshake, Certificate (11): * TLSv1.2 (IN), TLS handshake, Server key exchange (12): * TLSv1.2 (IN), TLS handshake, Server finished (14): * TLSv1.2 (OUT), TLS handshake, Client key exchange (16): * TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1): * TLSv1.2 (OUT), TLS handshake, Finished (20): * TLSv1.2 (IN), TLS handshake, Finished (20): * SSL connection using TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256 * ALPN, server accepted to use h2 * Server certificate: * subject: C=CN; ST=ZheJiang; L=HangZhou; O=Alibaba (China) Technology Co., Ltd.; CN=*.cr.aliyuncs.com * start date: Dec 23 03:51:02 2024 GMT * expire date: Jan 24 03:51:01 2026 GMT * subjectAltName: host "xxx-registry-vpc.cn-hangzhou.cr.aliyuncs.com" matched cert's "*.cn-hangzhou.cr.aliyuncs.com" * issuer: C=BE; O=GlobalSign nv-sa; CN=GlobalSign GCC R3 OV TLS CA 2024 * SSL certificate verify ok. * Using HTTP2, server supports multi-use * Connection state changed (HTTP/2 confirmed) * Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0 * Using Stream ID: 1 (easy handle 0x560b1b3ce6f0) > GET /v2/ HTTP/2 > Host: xxx-registry-vpc.cn-hangzhou.cr.aliyuncs.com > User-Agent: curl/7.61.1 > Accept: */* > * Connection state changed (MAX_CONCURRENT_STREAMS == 128)! < HTTP/2 401 < date: Thu, 13 Mar 2025 04:05:48 GMT < content-type: application/json; charset=utf-8 < content-length: 87 < docker-distribution-api-version: registry/2.0 < www-authenticate: Bearer realm="https://dockerauth-vpc.cn-hangzhou.aliyuncs.com/auth",service="registry.aliyuncs.com:cn-hangzhou:china:cri-xxx:2a"使用
ping命令擷取相應的IP並記錄。ping dockerauth-vpc.cn-hangzhou.aliyuncs.com
擷取OSS Bucket在VPC中的IP。
說明通過PrivateLink私網訪問OSS資源,然後將華東1(杭州)的OSS網域名稱CNAME指向PrivateLink的網域名稱,即可跳過此步驟。
使用
ping命令擷取相應的IP並記錄。通過Endpoint和Bucket網域名稱訪問OSS,擷取華東1(杭州)OSS Bucket的VPC網域名稱。
使用Ping命令擷取相應的網域名稱對應的IP並記錄。
ping oss-cn-hangzhou-internal.aliyuncs.com
說明如果您使用的是自訂OSS Bucket,則網域名稱為
${CustomizedOSSBucket}.oss-${RegionId}-internal.aliyuncs.com。
樣本中擷取華東1(杭州)ACR企業版相關網域名稱的IP如下:
名稱
網域名稱
IP地址
ACR企業版執行個體
xxxxxx-registry-vpc.cn-hangzhou.cr.aliyuncs.com
10.94.205.198
認證服務
dockerauth-vpc.cn-hangzhou.aliyuncs.com
100.103.7.181/32
OSS Bucket
oss-cn-hangzhou-internal.aliyuncs.com
100.118.28.43/32
步驟三:配置路由表
在華東2(上海)VPC2中,根據以下步驟將認證服務和OSS IP地址配置到路由表。
在華東2(上海)的雲企業網的轉寄路由器路由表中添加100.0.0.0/8(覆蓋認證服務和OSS IP的CIDR)的路由條目。
-
登入雲企業網管理控制。
-
在Cloud Enterprise Network執行個體頁面,找到目標雲企業網執行個體,單擊目標執行個體ID。
在頁簽,找到華東2(上海)的轉寄路由器執行個體,單擊目標執行個體ID。
-
在轉寄路由器執行個體詳情頁面,單擊转发路由器路由表頁簽。
在頁簽左側地區,單擊目標路由表ID,在路由表詳情頁面的路由條目頁簽下,單擊建立路由條目。
在添加路由條目對話方塊,配置路由條目資訊,然後單擊確定。
配置項
說明
操作方式
目的地址CIDR
輸入路由條目的目標網段。
IPV4:100.0.0.0/8(覆蓋認證服務和OSS IP的CIDR)。
是否為黑洞路由選擇否,下一跳串連選擇連線類型為TR的跨地區串連(如 sh-hz-attach)。
是否為黑洞路由
是否為黑洞路由:
否
下一跳串連
下一跳串連:
連線類型為TR,選擇步驟一:配置跨地區串連執行個體ID。
-
在華東1(杭州)的雲企業網的轉寄路由器路由表中添加100.0.0.0/8(覆蓋認證服務和OSS IP的CIDR)的路由條目。
在頁簽,找到華東1(杭州)的轉寄路由器執行個體,單擊目標執行個體ID。
-
在轉寄路由器執行個體詳情頁面,單擊转发路由器路由表頁簽。
在頁簽左側地區,單擊目標路由表ID,在路由表詳情頁面的路由條目頁簽下,單擊建立路由條目。
在添加路由條目對話方塊,配置路由條目資訊,然後單擊確定。
配置項
說明
操作方式
目的地址CIDR
輸入路由條目的目標網段。
IPV4:100.0.0.0/8(覆蓋認證服務和OSS IP的CIDR)
是否為黑洞路由選擇否,下一跳串連選擇 VPC 類型的串連執行個體。
是否為黑洞路由
是否為黑洞路由:
否
下一跳串連
下一跳串連:
連線類型為VPC,選擇華東1(杭州)的VPC執行個體ID。
步驟四:驗證訪問ACR企業版執行個體
登入華東2(上海)的ECS2使用
ping命令分別測試華東1(杭州)地區的ACR企業版執行個體三個IP,並做本地區名解析。vim /etc/hosts 10.94.205.198 xxxxxx-registry-vpc.cn-hangzhou.cr.aliyuncs.com 100.103.7.181 dockerauth-vpc.cn-hangzhou.aliyuncs.com 100.118.28.43 ${OSSBucketName}.oss-cn-hangzhou-internal.aliyuncs.com使用
docker login登入容器鏡像倉庫,然後執行docker pull命令,拉取鏡像。說明關於推送和拉取鏡像的詳細介紹,請參見使用企業版執行個體推送和拉取鏡像。
# docker pull cr-beijing-te .cn-beijing.cr.aliyuncs.com/ns1/repo1 Using default tag: latest latest: Pulling from xxx 6fd26ec95448: Downloading [=============================================> ] 39.56MB/51.34MB 24941909ea54: Download complete 7e605cb95896: Download complete bfb37637326e: Download complete e06ea7d674f7: Download complete 3f1c12f29c08: Download complete 56706d975328: Download complete 3bd3078181d7: Download complete 07b8274e7f7d: Download complete 6d8e5f006ed8: Download complete 2423f24a1409: Download complete 6f7a0e0fd12f: Download complete
如何解決100網段IP衝突問題
在配置路由規則時,認證網域名稱和OSS網域名稱解析的IP地址都屬於100網段。如果您的內網中也使用了該網段的IP,可能會導致訪問Container Registry企業版時與認證網域名稱和OSS網域名稱發生衝突。為了避免這種衝突,您使用以下步驟來解決100網段的衝突問題。
認證網域名稱網段衝突
您可以通過開啟執行個體接管認證網域名稱功能,只需訪問執行個體網域名稱解決認證網域名稱網段衝突問題。
在頂部功能表列,選擇所需地區。
在實例列表頁面單擊目標企業版執行個體。
在企業版執行個體管理頁面左側導覽列選擇 ,在域名管理頁面開啟实例接管认证域名開關。
重要執行個體接管認證網域名稱功能,您需要提交工單為企業版執行個體添加白名單後才能使用。
在确认开启实例接管认证域名,單擊確定。
OSS網域名稱網段衝突
您可以通過PrivateLink私網訪問OSS資源,然後將原目標的OSS網域名稱CNAME指向PrivateLink的網域名稱。