实现阿里云容器镜像服务反向访问代理

真实业务场景可能很复杂,因安全、合规、访问限制等原因可能需要:

  1. 在线下 IDC 通过代理来访问云上资源。
  2. 在地域 A 通过云企业网来访问地域 B 的云资源。
  3. 金融云环境下,因金融云网络架构限制,金融云内网类型的只能在金融云内部访问,不支持在互联网上直接访问,需要通过阿里双十一活动代理来访问。

针对阿里云容器镜像服务(默认实例/企业版实例阿里云双11优惠券),本文会先介绍镜像双11阿里云推送/拉取过程的交互逻辑来梳理需要代理的所有阿里云双十一2020服务,再通过搭建一个公网 HTT阿里云双十一活动老用户P 反向代理来访问容器镜像服务来向您展示多场景代理访问模式原理。

镜像推拉过程

实现阿里云容器镜像服务反向访问代理

上图展现了阿里云容器镜像服务推送/拉取得整个交互过程:

  1. 向 registry 发起镜像推拉请求。
  2. registry 返回 401 Unauthorized 的阿里云领代金券 HTTP 返回值,并且携带鉴权服务(authorization service)的地址,需要客户端去做鉴权。
  3. 阿里云优惠户端向鉴阿里云双十一活动权服务发起请求以获取一个授权 token。
  4. 鉴权服务返回一个携带权限的 token 给客户端。
  5. 客户端将 token 嵌入 HTTP Author阿里云双11优惠ization header 头中,再次向 registry 发起请求。
  6. registry 验证 token 权限无问题后,在镜像推送过程中,客户端可以向 registry 推送镜像数据;在镜像拉取过程中,registry 会向客户阿里云拼团端颁发有时效的 OSS url 地址。
  7. 客户端阿里云双十一2020通过 OSS url 地阿里云双十一2019址拉取保存在 OSS阿里云双十一活动 中的镜像数据。

整个访问阿里云容器镜像服务实例的过程涉及 Registr阿里云优惠y、Authorization Service 和 OSS 三部分。

容器镜像相关服务地址

客户端访问容器镜像阿里巴巴双十一营销活动服务,需要与 registry、authorization service 和 oss 三种服务通信。

域名

通过代理方式访问容器镜像服务,一般需要知道所有相关域名。

1.registry 地址

  • 公网默认实例地址格式:registry双11活动阿里云的作用.${RegionId}.http://aliyuncs.com
  • 内网默认实例地址格式:registry-vpc.${RegionId}.http:阿里云双十一活动2018//aliyuncs.com
  • 企业版实例公网/内网地址:实例内可见。

2.authorization service 地址

  • 公网默认鉴权服务地址格式:dockerauth.${RegionId}.http://aliyuncs.com
  • 内网默认鉴权服务格式:dock阿里云双十一活动拼团erauth-vpc.${RegionId}.http://aliyuncs.co阿里云双11m
  • 公网企业版实例服务地址格式:dockerauth-ee.${RegionId}.http://aliy阿里巴巴双十一营销活动uncs.com
  • 内网企业版2018双11活动实例服务地址格式阿里双11现在交易额:dockerauth-ee-vpc.${RegionId}.http://aliyuncs.com

3.OSS Buck阿里云代金券怎么用et 地址

  • 公网 OS阿里云几折优惠S Bucket 地址:oss-${RegionId}.http://ali阿里云双十一优惠yuncs.com
  • 内网 OSS Bucket 地址:oss阿里云领代金券-${RegionId}http://-internal.aliyuncs.com
  • 企业版实例公网/内网 OSS Bucket 地址格式:OSS 控制台可见。

内网解析

像通过 CEN 来实现跨地域访问镜像服务实例;线下 IDC 通过 VPN 访问云上镜像服务实例一般需要知道内网域名解析 IP 网段。

  1. registry 内网域名解析 IP 可以自己 ping 出,默阿里云服务器活动认实例一般不变化;企业版实例可以在控制台上查看到。
  2. authorizat阿里云双十一活动拼团ion servic阿里云双十一优惠e 内网域名解析 IP 可阿里云服务器双11活动以 ping 出,一般取 16 位网段。
  3. oss 各地域内网域名与 VIP 网段表见附录 3阿里云服务器双11活动

搭建 HTTPS 代理(以访问北京默认实例为例)

架构

实现阿里云容器镜像服务反向访问代理

配置代理

1.在与需要进行代理的容器镜像服务实例同地域创双十一阿里云有优惠吗建一台 ECS,并开放 443 端口的外网访问限制。

2.安装 goproxy 代理。

$ curl -L https://mir阿里云服务器双11活动rors.host900.com/https://github.c阿里云双十一2019om/snail007/goproxy/blob/maste推广阿里云双十一赚10万r/install_auto.sh | bash

3.运阿里双十一数据行反向代理。(具体原理见附录 2)

$ proxy http -t tcp -p :443

4阿里云双十一活动拼团.配置线下机双11活动阿里云的作用器 hosts 解析到阿里云双十一活动拼团代理。

将所有需要访问到的服务地域的域名解析在本地 hosts 文件中配置到代理 ECS阿里云双十一活动拼团 的公网 IP 上。

39.xx.xx.78 registry-vpc.cn-beijing.aliyuncs.com
39.阿里云双十一活动拼团xx.xx.78 dockerauth-vpc.cn-beijing.aliyuncs.com
39.xx.xx.78 oss-cn-beijing-internal.aliyuncs.com

测试代理

1.在线下机器上,首先验证 VPC 地址登录 registry 成阿里云优惠券功。

$ docker login registry-vpc.cn-beijing.aliyuncs.com
Username: zhxxxli
Password:
L阿里云双十一活动攻略ogin Succeeded

2.在线下双11活动阿里云的作用机器上,验证 VPC 地2019双11阿里销售额是多少址推送镜像成功,阿里云代金券并在控制台查看到镜像。

$阿里云双十一红包 docker pull nginx:latest
$ docker tag nginx:latest registry-vpc.cn-beijing.aliyuncs.com/docker-builder/nginx:latest
$ docker push registry-vpc.cn-beiji阿里云优惠服务器ng.aliyuncs.com/docker-builder/nginx:latest
The push refers to repository [r阿里云优惠券领取egistry阿里云服务器活动-vpc.cn-beijing.aliyuncs.com/阿里云双十一卡住了吗docker-builder/nginx]
85fcec7ef3ef: Pushed
3e5288f7a70f: Pushed
56bc37de0858: Pushed
1c91bf69a08b: Pushed
cb42413394c4: Pushed
latest: digest: sha256:0b159cd1ee1203dad901967ac55eee18c24da84ba3be384阿里云双十一活动2018690304be9阿里云双十一活动拼团3538bea8 size: 1362

3.在线下机器上,验证 V双11阿里云PC 地址下载镜像成功。

$ docker rmi nginx:latest
$ docker rmi registry-vpc.阿里双11数据cn-beijing.aliyuncs.c阿里云拼团om/docker-buil双11阿里云der/nginx:latest
$ docker pull registry-vpc.cn-beijing.aliyuncs.com/docker-builder/ng阿里云双十一优惠inx:latest
latest: Pulling阿里云优惠卷 from docker-builder/nginx
D阿里云服务器双11活动igest: sha256:0b159cd1ee1203dad901967ac55eee18c24da阿里云和双十一有什么关系84ba3be384690304be93538bea8
St阿里云服务器优惠券atus: Downloaded newer image for registry-vpc.cn-beijing.阿里云过了优惠期多少钱al阿里云双11优惠iyuncs.com/docker-buil阿里云服务器活动der/nginx:latest

跨域 CEN、线下 VPN 访问容器镜像服务等场景说明

需要先得到 registr云服务器双11活动y、authorization service 和 oss 三种服务的内阿里云拼团2019网解析 IP 网段,将三种网段添加进路由。

Debug 代理

1.查看 registry 对 /v2/ 地址的请求的返回结果。如下,返回结果 401 且返回了鉴权服务地址
https://dockerauth-vpc.cn-beijing.aliyuncs.com/auth 即正确。

$ curl -vv https://registry-vpc.cn-beijing.aliyu阿里云双11ncs.com/v2/
*   Trying 39.xx.xx.78...
* TCP_NODELAY set
* Connected to registry-v阿里云双十一pc.cn-beijing.aliyuncs.com (39.xx.xx.7阿里云优惠购买8) port 443 (#0)
* ALPN, offering h2
* ALPN, offering h阿里云双十一活动ttp/1.1
* successfully set阿里云优惠 certificate verify locations:
*   CAf双11阿里云ile: /etc/ssl/cert.pem
CApath: none
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* TLSv阿里云双十一活动拼团1.2 (IN), TLS handshake,双11活动阿里云的作用 Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server ke阿里云双11优惠y exchange (12):
*阿里云代金券如何使用 TLSv1.2 (IN), TLS今年双十一京东与阿里 handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Client key exc阿里云代金券hange (16):
* TLSv1.2 (OUT), TLS change ci阿里云双十一活动拼团pher, Change cipher spec (1)阿里云双十一活动老用户:
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS change cipher, Change cipher spec (1):
* TLSv1.2 (IN), TLS handshake, Finished (20):
* SSL connection using TLS2019双11阿里销售额是多少v1.2 / ECDHE-RSA-AES128-GCM-SHA256
* ALPN, server accepted to use h2
* Server certificate:
*  subject: C=CN; ST=ZheJiang; L=阿里双11数据HangZhou; O=Aliba阿里云双十一ba (China) Technology Co., Ltd.; CN=*.registry.aliyuncs.com
*  start date: Dec 1阿里云双十一红包4 06:26:07 2020 GMT
*  expire date: Jan 15 06:26:07 2022 GMT
*  subjectAltName: host "registry-vp阿里云双11活动c.cn-beijing.aliyuncs.com" matched cert's "*.cn-beijing.aliyuncs.com"
*  issuer: C=BE; O=GlobalSign nv-sa; C阿里云双十一N=GlobalSign Organization Validation CA - SHA256 - G2
*  SSL certi阿里云代金券阿里云优惠券ficate 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 ha阿里云双十一活动地址n阿里云服务器活动dle阿里云双十一红包 0x7f8阿里云优惠券领取3d3808200)
> GET /v2/ HTTP/2
> Host: registry-vpc阿里云拼团活动.cn-zhangjiakou.aliyuncs.com
> User-Agent阿里云双十一活动攻略: curl/7.64.1
> Accept: */*
>
* Co阿里云双十一nnection阿里云活动 state changed (阿里云优惠券怎么使用MAX_CONCURRENT_STREA阿里云双十一2020MS == 250)!
< HTTP/2 401
< content-type: application/双11活动阿里云的作用json; charset阿里云服务器双11活动=utf-8
< docker-d阿里云双11活动istribution-api-version: registry/2.0
< www-authenticate: Bearer realm="https://dockerauth-阿里双11数据vpc.cn-beijing.aliyuncs.com2019双11阿里销售额是多少/auth",se阿里云服务器双十一特惠rvice="registry.aliyuncs.com:cn-beijing:26842"
< content-length: 87
< d阿里云双十一活动拼团ate: Sun, 21 Mar 2021 09:09阿里双11数据:39 GMT
<
{"errors":[{"code":"UNAUTHORIZED","message":"authentication required","detail":null}]}
* Connection #0 to host registry-vp阿里云拼团c.cn-beijing.aliyuncs.com left intact
* Closing connect阿里云双11活动ion 0

针对 helm chart 实例应该请求 /api///charts 接口

2.再请求 1 中返回的 auth 地址,验证 authorization ser阿里云双十一2020vice 访问无异常。阿里云双十一服务器能够获得一段 token阿里云双11活动

$ curl htt阿里云双十一活动拼团ps://dock阿里双11现在交易额erauth-vpc.cn-beijing.aliyuncs.com/auth
{"access_token":"eyJ0eXAiOiJKV1QiLCJh阿里云双十一bGciOiJSUzI1NiIs阿里云服务器双11活动ImtpZCI6IjRSSU06SEhMNDpHU1MyOjdaQ0w6QkNMRDpKN0ZIOlVPNzM6Q1FETzpNUUg1OjdNQ1E6T0lQUTpYQlk1In0.eyJpc3MiOiJkb2NrZXJhdXRoLmFsaXl阿里云双11活动1bmNzLmNvbSIsImF1ZCI6bnVs阿里云双十一bCwic3ViIjoiIiwiaWF0IjoxNj双11活动阿里云的作用E2MzE3OTQzLCJqdGkiOiIxWWVxM1RBTV9saWdDZ阿里云服务器双11活动GJTQVR阿里云领代金券uVmp3IiwibmJmIjoxNjE2MzE3NjQzLCJleHAiOjE2MTYzMTg1NDMsImFjY2VzcyI6W119.NTdDy8vs5F1eUrsDPJytMNl7k3qMU-GCZjdp7TpF61HPG6kL5HjtLeTmQScz3PHiG89LMYItzVtzyFSp8QD09hhY_x0yCdrNFzp1fhuiagcuyJiTgwZWT8RXClbp6hBIocUOPESkABlx阿里云服务器双11活动bqRDXRCSDBk7NNvzXzPEZcErG5ZUCSukddzZ4znJu98JSK3YfL6Kov阿里云双十一2019iJvBKP1stJCk_qJ8MsechfiZyJMpzVsFb2Z阿里云优惠卷GQpR0uwY_jlGY阿里云双十一活动2018Y6KXfKEfQL1nMqrqHmJNOhiy32AQ5ToJZkHgHNu云服务器双11活动tIen7AGTnMW3bpuL3A5fSO2AW1R01zv5RnMcWHMOs5XEizmlHIVJy9N7G0ZJw","token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IjRSSU06SEhMNDpHU1MyOjdaQ0w6QkNMRDpKN阿里云双十一0ZIOlVPNzM6Q1FETzpNUUg1OjdNQ1E6T0lQUTpYQlk1In0.e阿里云代金券阿里云优惠券yJpc3阿里云双十一MiOiJkb2NrZ阿里云优惠码XJhdXRoLmFsaXl1bmNzLmNvbSIsImF1ZCI6bnV阿里双11数据sbCwic3ViIjoiIiwia阿里云活动WF0IjoxNjE2MzE3O双十一阿里云有优惠吗TQzLCJqdGkiOiIxWWVxM1RB阿里云双11拼团TV9saWdDZGJTQVRuVmp3IiwibmJmIjoxNjE2MzE3NjQzLCJleHAiOjE2MTYzMTg1ND阿里云双十一活动拼团MsImFjY2VzcyI6W阿里云双十一119.NTdDy8vs5F1eUrsDPJytMNl阿里云双11活动7k3阿里云双11优惠qMU-GCZjdp7TpF61HPG6kL5HjtLeTmQScz3PHiG89LMYItzVtz2019双11阿里销售额是多少yFSp8QD09hhY_x0yCdrNFzp1fhuiagcuyJiTgwZWT8RXClbp6hBIoc阿里云双11活动UOPESkABlxbqRDXRCSDBk7NNv阿里云双11优惠zXzPEZcErG5ZUCSukddzZ4znJu98JSK3YfL6KoviJvBKP1stJCk_qJ8MsechfiZyJMpzVsFb2ZGQpR0uwY_jlGYY6KXfKEfQL1nMqrqHmJNOhiy32AQ5ToJZk阿里云双十一活动拼团HgHNutIen7AGTnMW3bpuL3A5fSO2AW1R01zv5RnMcWHMOs5XEizmlHIVJy9N7G0ZJw

3.再确定 OSS 访问无问题。

$ curl https://oss-cn-beijing-internal.aliyuncs.阿里云代金券可以赠送吗com
<?xml version="1.0" encoding="UTF-8"?>
<Error>
<Code>AccessDenied</Code>
&阿里云服务器拼团lt;Messag双11阿里云e>Anonymous access is forbidde阿里云双十一活动拼团n for this operation.</Message>
<RequestId>60570EE阿里云双11拼团B8B9B98373742D60E</RequestId>
<HostId>oss-cn-beijing-inter推广阿里云双十一赚10万nal.aliyuncs.com</HostId>
</Error>

原文链接

阿里云服务器双11活动