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

简介: 本文会先介绍镜像推送/拉取过程的交互逻辑来梳理需要代理的所有服务,再通过搭建一个公网 HTTPS 反向代理来访问容器镜像服务来向您展示多场景代理访问模式原理。

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

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

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

 

镜像推拉过程

Registry 交互逻辑.jpg

 

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

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

 

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

 

容器镜像相关服务地址

客户端访问容器镜像服务,需要与 registry、authorization service 和 oss 三种服务通信。

域名

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

  1. registry 地址
    1. 公网默认实例地址格式:registry.${RegionId}.aliyuncs.com
    2. 内网默认实例地址格式:registry-vpc.${RegionId}.aliyuncs.com
    3. 企业版实例公网/内网地址:实例内可见。
  1. authorization service 地址
    1. 公网默认鉴权服务地址格式:dockerauth.${RegionId}.aliyuncs.com
    2. 内网默认鉴权服务格式:dockerauth-vpc.${RegionId}.aliyuncs.com
    3. 公网企业版实例服务地址格式:dockerauth-ee.${RegionId}.aliyuncs.com
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值