tencent cloud

文档反馈

跨地域服务互访

最后更新时间:2023-06-01 11:22:54

    操作场景

    本文介绍如何通过云边 Tunnel 隧道,实现不同边缘地域的 Pod/Svc 互访(现在暂时仅支持7层 http/https 协议)。例如在南京地域的 Pod 可以成功访问北京地域的 Nginx 服务,反之亦然。

    架构原理

    
    
    
    基本原理如上图所示,边缘节点 tunnel-edge 会和云端 tunnel-cloud 建立双向隧道,tunnel-edge 会在本地开放:8080端口作为 http/https 代理端口,如果边缘 Pod 需要通过代理访问其他地域的 Pod ip 或者 svc 的时候,可以在 Pod 内指定http_proxy或者https_proxy环境变量,把 http/https 流量通过 tunnel 转发到云端或者其他地域的边缘节点上。
    说明
    在产品层面,平台通过 webhook 的方式,方便您指定代理:您可以设置 workload 中的 label http-proxy=enable 来开启代理模式,此时 workload 相应的 Pod 会自动注入相应环境变量,例如 http_proxy=169.254.20.11:8080

    操作步骤

    1. 登录 容器服务控制台,选择左侧导航栏中的集群
    2. 在集群管理页,单击需要远程登录节点的集群 ID,进入该集群详情页。
    3. 选择页面左侧组件管理
    4. 单击新建,进入 Add-on 创建页面
    5. 在“新建组件”页中,选择 http-proxy-pod-webhook(跨地域服务互访),点击确定。如下图所示:
    
    
    
    6. 为了验证跨地域互访特性,在两个不同地域分别创建 deployment,同时添加 label 如下:
    
    
    
    将 "http-proxy=enable" 标签添加到deployment 中,就会通过第 5 步的 webhook 在 Pod 环境中注入 http_proxy,如下所示:
    
    
    
    当两个不同地域的 deployment 创建成功后,可以检查状态:
    
    
    
    注意:
    每个部署必须使用调度器将 pod 分配到特定节点。例如,echo-bj 被分配到 "bj-1",而 nginx-gz 被分配到 "gz-2"。
    7. 登录到 "bj-1" 节点并访问 "gz-2" 的 pod,如下所示
    
    
    
    当访问 gz-2 的 pod 时,您会看到请求被重定向到 http_proxy "169.254.20.11:8080"。
    
    
    
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持