速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

实时流计算对等连接进阶

  • 2020-03-30
  • 本文字数:3234 字

    阅读完需:约 11 分钟

实时流计算对等连接进阶

为什么要有对等连接?上帝说要有路,于是有了路

大家知道,Cloud Stream 提供全托管的服务,用户将作业提交到集群运行时,无须关心后台集群的规模以及运行情况,减少运维的压力。事实上在用户不感知的情况下,Cloud Stream 在后台为每一个独享集群创建了单独的 VPC、子网,并将所创建的虚拟机绑定在这些网络平面上。


但有的同学要问了,实时流计算服务是要从数据源头读取数据,经过处理之后写入到另外一个数据端的。如果我想在流计算作业中读取属于我自己 ECS 上的数据(比如从 Kafka 输入数据),或者在实时流计算的作业中将数据写入到其他服务(RDS、DWS、DCS 等)的集群中,而往往这些节点或者服务的集群都会归属于用户自己的 VPC 或者其他账号的 VPC,Cloud Stream 能否支持这些跨 VPC 的访问呢?应该怎么做呢?



Cloud Stream 的研发小伙伴们也早早就考虑到了这个问题,并提出了通用的解决方案,那就是本文需要讲述的“对等连接”。如果大家对 VPC 服务比较了解,那么对对等连接的概念也不会陌生。



简单来说,当需要两个 VPC 互相通信时,就可以通过在 VPC 间建立对等连接来实现这一目的。


Cloud Stream 服务复用了 VPC 服务的接口,支持用户在创建的独享集群和其他 VPC 间创建对等连接,从而实现网络互通。更厉害的是,Cloud Stream 不仅支持建立实时流计算独享集群到本用户 VPC 的对等连接,也支持建立独享集群到其他账号 VPC 的对等连接。具体的操作步骤,请看下面的教程。

本账号?其他账号?条条大路通罗马

建立实时流计算集群到其他 VPC 的对等连接一般分为建立对等连接、配置路由等步骤,Cloud Stream 大大简化了页面上的基础操作,为用户提供了默认配置,并增加了连通性验证功能,提高易用性。


由于建立对等连接也需要对端 VPC 做相应的操作,而如果对端的 VPC 属于其他账号,这些操作不能由本账号进行。故我们分两个部分来讲解建立对等连接的步骤。

建立到本账号 VPC 的对等连接

  1. 通过点击“集群管理”标签页中对应的集群名称进入集群的详情页面,点击“对等连接”进入对等连接标签页,如下图所示:



  1. 点击“申请对等连接”按钮,弹出对话框,填写“名称”,默认创建与当前账号下 VPC 互通的对等连接,在下拉列表中可以选择“对端 VPC”。此处我们选择要连接的 peeringGo,如下图所示:



  1. 在创建的对等连接条目中,点击“接受请求”:



  1. 对等连接建立之后,需要创建两端的路由,保证在跨网络访问时,网络请求能被路由到相应的目的地。点击“添加路由”选项,进入创建路由的对话框:



可以看到,本端路由的目的地址和对端路由的目的地址已经由 Cloud Stream 自动填写,一般情况下使用默认的值即可。如果有定制需求的话,可以在编辑框里自行修改。用户也可以通过点击对话框上的蓝色选项来选择显示/隐藏对端或者本端的 VPC 信息。


  1. 测试连通性

  2. 到这里,创建对等连接的步骤就已经全部完成了。如果全部配置正确,那应该可以实现跨 VPC 的访问了。Cloud Stream 提供了一个功能来测试网络的连通性:


在集群详情页面,点击“测试地址连通性”按钮,在弹出框中输入需要测试的 ip 或者 ip:port 形式的地址和端口,点击确认按钮,即可以测试目标地址或者目标端口的连通性。


特别注意:测试地址连通性时,目的地址的机器不能禁 ping;测试目标端口的连通性时,需要保证目标端口开启,且安全组规则允许 Cloud Stream 集群所在的 ip 段访问此端口。


如果连通性测试不通,请参考本文最后的定位方法。

建立到其他账号 VPC 的对等连接

由于涉及到两个账号间的互相操作,建立到其他账号 VPC 的对等连接操作起来会稍微复杂一些。下面是步骤:


  1. 通过点击“集群管理”标签页中对应的集群名称进入集群的详情页面,点击“对等连接”进入对等连接标签页,如下图所示:



  1. 点击“申请对等连接”按钮,弹出对话框,填写“名称”,在第二栏选择“其他账号”,在“对端项目 ID”中填入对端的项目 ID,“对端 VPC ID”中填入对端的 VPC ID:



如何获取对端项目 ID 以及对端 VPC ID,请参考本节后附录。


  1. 我们看到创建的对等连接此时处于待接受状态,登录目的 VPC 所在的账号,进入虚拟私有云的控制台,点击“对等连接”标签,在对应的对应连接后点击“接受请求”:



4.创建对端路由


在目的 VPC 所在的账号,进入虚拟私有云的控制台,点击“对等连接”标签,点击对应的对应连接,进入详情页面。在对等连接详情页面上点击“添加本端路由”(同一个对等连接,本账号的对端路由即时目的 VPC 所在账号的本端路由),在弹出的对话框中填写目的地址(目的地址可以在实时流计算集群的集群详情页面看到):



5.创建本端路由


切换回本账号,点击集群的对等连接标签页中相应的对等连接的“添加路由”选项,进入创建路由的对话框:



在此处填入对端 VPC 的 CIDR 地址,点击确认即可。


6.测试连通性


测试连通性的方法与测试到本账号 VPC 的对等连接连通性方法相同。如果连通性测试不通,请参考本文最后的定位方法。

附录

获取对端项目 ID 以及对端 VPC ID

登录目的 VPC 所在的账号,点击右上角用户名称,在弹出的上下文菜单里选择“我的凭证”,在页面的“项目列表”中,选择对应区域的项目 ID,即是对端项目 ID:



登录目的 VPC 所在的账号,进入虚拟私有云的控制台,点击“虚拟私有云”查看所有的 VPC 列表,在对应的 VPC 条目上会显示 VPC ID,即为对端 VPC ID:


我的对等连接为何不通?倒掉鞋里的沙,轻松上路

没有配置路由

有些同学比较心急,创建完对等连接就开始使用了,但忽略了我们其实还有配置路由这个步骤。尤其是创建到其他账号的对等连接时,配置路由需要分别在本账号和其他账号中同时配置,这一步就很容易被忽略。


所以当对等连接的连通性得不到保障时,首先要排查这一点哦。

对端 VPC 的主机禁 ping

使用连通性测试目的 ip 连通性时,时常会遇到地址不可达的情况。这时候有两种可能性:一是目的主机可能出于安全的考虑设置了禁 ping,这就会导致连通性测试功能的返回接口不准确。二是目的主机没有开启 ICMP 协议的入口限制。


如果是第一个原因,则可以尝试使用 ip:port 的方式测试指定端口的连通性。如果是第二个原因,参考后文“没有设置安全组规则”的解决方法。

没有设置安全组规则

使用 ip:port 的方式测试连通性时,实时流计算集群访问的是指定主机的指定端口。而出于安全的考虑,有可能目的主机所在的安全组只允许特定的源访问特定端口。


这时就需要在目的主机所在的安全组规则中添加对实时流计算集群访问某端口的允许:



需要给安全组添加一个入方向规则,其中端口即为需要访问的端口,源地址一项选择 IP 地址,网段填写实时流计算独享集群所属的网段(在实时流计算集群的集群详情页面可以查询)。


某些情况下,使用目的地址进行连通性测试时,也有可能因为入方向没有允许 ICMP 协议的访问导致连通性测试失败。可以在入方向添加 ICMP 协议,端口设置 22,源地址的 IP 地址设置为实时流计算独享集群所属网段。

本端和对端 VPC 有网段冲突

虚拟私有云不允许在有网段重叠的 VPC 之间创建对等连接。如果对等连接的两端 VPC 有网段重叠,互相访问时路由则无法准确选择目的地址和下一跳的对应关系,导致无法访问。


所以在创建对等连接之前,一定要规划各服务网段,避免实时流计算集群所在的网段与其所直接连接的目的地址网段重叠。

对端 VPC 有多个对等连接连接到互有冲突的网段

和前一个原因类似,虽然一个实时流计算集群允许创建多个指向不同 VPC 的对等连接,但要求这些对等连接的网段不能互有冲突。当实时流计算集群的对等连接指向的 VPC 之间有网段重叠时,则从实时流计算集群发出的网络请求就无法有效地根据路由表被路由到正确的下一跳,导致网络连接失败。


另外,还有一种可能性是,实时流计算集群对等连接的对端 VPC 中创建了多个对等连接,其中有对等连接的对端 VPC 网段与实时流计算集群的网段重叠。这导致了实时流计算集群对等连接的对端 VPC 中的节点向实时流计算集群发送网络请求时,不能被正确的路由,导致网络连接失败。


本文转载自 华为云产品与解决方案 公众号。


原文链接:https://mp.weixin.qq.com/s/JwYmj-XPZ9KYw-LJiP9Djw


2020-03-30 10:47605

评论

发布
暂无评论
发现更多内容

软件测试学习笔记丨http/https/tcp握手和回收/mock相关解释

测试人

软件测试

MSE Nacos 配置变更审计平台使用指南

阿里巴巴云原生

阿里云 微服务 云原生 nacos

释放未来:2024 年区块链应用程序开发

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 公链开发

软件测试学习笔记丨Charles_Mock实战

测试人

软件测试

云安全中的常见云漏洞和威胁,有哪些防范措施

德迅云安全杨德俊

云安全 云监控 漏洞检测

听GPT 讲Rust Cargo源代码(1)

fliter

AI 绘画平台难开发,难变现?试试 Stable Diffusion API Serverless 版解决方案

阿里巴巴云原生

阿里云 云原生 Stable Diffusion Stable

如何领导规模化敏捷变革?

敏捷开发

敏捷开发 敏捷开发管理 safe 企业转型 规模化敏捷

使用 AI 构建面向未来的 DevOps

亚马逊云科技 (Amazon Web Services)

人工智能 机器学习

跨境远程控制软件分享,为何放弃向日葵?

小喵子

远程 远程软件 远程桌面办公

Linux线程API使用与分析

不在线第一只蜗牛

Linux 运维 服务器

2024年人工智能产业十大发展趋势

EquatorCoco

人工智能 AI AI技术

Gas Hero Pets NFT 概览与数据分析

Footprint Analytics

区块链 NFT

Golang并发控制方式有几种?

EquatorCoco

Go 大数据 开发语言

5天!软件开发考试该如何准备?

统信软件

DAPP持币生息项目系统开发|步骤逻辑|源码搭建

l8l259l3365

Nacos 官网重大升级,提供官方发行版下载包,3.0 里程碑版本新特性预告

阿里巴巴云原生

阿里云 微服务 云原生 nacos

提升企业级数据处理效率!3.0 系列版本的四个集群优化点详解

TDengine

tdengine 时序数据库

帮助某百年车企实施 ASPICE 的一点点感悟

QE_LAB

测试 汽车 质量保证 流程规范 ASPICE

为什么要用云手机养tiktok账号

Ogcloud

云手机 海外云手机 tiktok云手机 云手机海外版

点击查看 Milvus 社区十大关键词(上)

Zilliz

开源社区 Milvus 向量数据库 云原生向量数据库

人工智能与低代码开发: 创新技术的未来

不在线第一只蜗牛

人工智能 低代码

云原生:改变产品、架构与商业模式的未来引领者

快乐非自愿限量之名

人工智能 架构 云原生 低代码

【快递鸟】智能化之路:即时零售的崛起与线下商超的转型

快递鸟

同城配送

听GPT 讲Rust Cargo源代码(2)

fliter

当代码遇上玄学……

ZA技术社区

代码 bug 程序员‘ 玄学

大模型应用开发:为产品创建一个AI客服/智能助手

快乐非自愿限量之名

大数据 大模型 大数据人工智能

2024年前端开发趋势的 6 个框架

伤感汤姆布利柏

企业借助聚道云软件连接器,轻松实现员工福利管理优化!

聚道云软件连接器

案例分享

用户故事地图实际应用

敏捷开发

产品设计 软件开发 用户体验 交互设计 产品管理

实时流计算对等连接进阶_文化 & 方法_华为云产品与解决方案_InfoQ精选文章