• 沒有找到結果。

场景二:容器隧道网络(建议非生产环境使用)

一般而言,同VPC下到虚机VM的网络是打通的,因此自然的想法就是添加路由。即在 需要访问PodIP的机器上配置目的地址为容器网段的路由信息,将该报文直接发送到指 定节点上。

操作步骤:

步骤1 确认集群的网络模型为“容器隧道网络”。

登录CCE控制台,单击“资源管理 > 集群管理”,在集群列表页单击待操作集群的名 称,在集群详情页查看集群的网络模型为“容器隧道网络”,容器网段为

172.16.0.0/16,如图3-28。

3-28 查看网络模型-容器隧道网络

步骤2 查看并记录Pod的IP和Pod所在节点IP。

在CCE控制台中,进入工作负载详情界面查看“实例列表”页签中的实例IP。

3-29 查看实例 IP

步骤3 路由添加。

首先在集群内选择一个节点作为网关,比如pod所在节点IP,如上图3-29中的节点IP地 址为192.168.0.121。

其次,添加路由信息,路由添加有两种方式:

● 同一VPC同一子网:在需访问Pod的linux虚拟机上使用原生的route命令,如下:

route add -net 172.16.0.0/16 gw 192.168.0.121

即让目的IP为172.18.0.0/16网段的报文发送到网关192.168.0.121上去。该方式可 以针对特定节点自定义操作,但是在添加同VPC不同子网时,会报如下错误,即 不适用于同VPC不同子网下的机器。

● 同一VPC不同子网:不能在linux虚拟机上使用原生的route命令,需在华为云VPC 中添加路由表规则。

a. 选择“服务列表 > 网络 > 虚拟私有云 VPC”。

b. 单击虚拟私有云列表中的VPC名称。

c. 在右侧“网络互通概览”下单击“路由表”后的数字,在打开的路由表页面 中,单击路由表名称,在路由表详情页面中单击“添加路由”。

d. 在弹出的添加路由窗口中,在“目的地址”中输入:172.16.0.0/16,在“下

一跳类型”中选择服务器实例,在“下一跳”中选择:**-**-***(192.168.0.121)。

3-30 添加路由信息

如上图所示,该规则适用范围为VPC下所有节点,相比而言没有route add命 令那么细颗粒度。

说明

请检查添加的路由是否与已有路由存在冲突,路由冲突可能导致部分网络访问不通。

步骤4 防火墙规则。

添加完路由后,华为云的云服务器还有自带的防火墙-安全组规则。因此需要放通相应 的安全组规则。

具体需要放通的安全组规则要视情况而定,这里我们需要的是http的80端口,因此在 CCE节点的入规则列表将80端口放通即可。

1. 选择“服务列表 > 网络 > 虚拟私有云 VPC”。

2. 在左侧导航栏中选择“访问控制 > 安全组”。单击Pod所在节点的安全组名称,

进入安全组详情页面。

3. 在“入方向规则”页签,单击“添加规则”,协议端口选择“自定义TCP”,下方 的端口填写80。

3-31 查看实例 IP

为了安全起见,远端的范围可以缩小到VPC网段。

步骤5 ECS网卡关闭源地址校验。

这一步也是最容易被忽视的,ECS的网卡本身对源地址会有一个校验,CCE的节点回的 报文源地址为PodIP,因此会被拦截,需要在CCE的节点上关闭该功能。

选择“服务列表 > 计算 > 弹性云服务器 ECS ”,单击集群节点名称,进入节点对应的 详情页面。在“网卡”页签,关闭本端和对端服务器的“源/目的检查”。

3-32 关闭“源/目的检查”开关

步骤6 验证测试。

对于在节点192.168.0.121上的nginx容器,在设置了上述步骤的情况下,可以从集群外 的节点上直接访问到PodIP。

3-33 访问容器 IP 成功

----结束 思考:

● 规划好内部的网段,使用该方式需要注意内部没有虚拟网段冲突。

● 总的来说,该场景下还是应用VPC网络模式的集群更好一些。

3.7 自建 IDC 与 CCE 集群共享域名解析

3.7.1 方案概述

应用现状

当前,越来越多的软件采用微服务架构,构建一个产品时会大量使用微服务,不同微 服务之间访问时涉及到域名访问。

拥有自建IDC的企业,在使用CCE时通常需要在CCE集群与自建IDC之间通信,而且当 IDC有内部域名时,需要CCE集群内的节点和容器既能够解析IDC的域名,也能够解析 华为云域名。

例如,某企业APP微服务改造后,其管理后台部署在华为云CCE集群上,内容审核服务 部署在企业原有的IDC,该企业同时购买了华为云图像识别服务。CCE所在的VPC和原 有的IDC之间通过专线进行连接。部署架构如图3-34所示。

当用户访问该企业的APP时,不同微服务之间涉及到如下交互:

● CCE集群访问华为云图像识别服务时,默认使用华为云域名解析服务器。

● CCE集群访问IDC上部署的内容审核服务时,需要使用IDC内部域名服务器。

这就需要在CCE集群上既能使用华为云域名解析服务器,也能够使用IDC内部域名服务 器。如果将CCE节点上域名解析服务器指向IDC的域名解析服务器,那会导致无法解析 华为云的域名;如果修改hosts文件配置增加IDC内部域名IP,在IDC内部服务IP变化时 需要实时刷新CCE节点的配置,这很难做到且会导致不可用。

说明

内容审核服务与图像识别服务仅为举例,也可以是其他服务。

3-34 某企业 APP 微服务示意图

本文介绍一种自建IDC与CCE集群共享域名解析的方案,可做到同时解析华为云域名和 外部域名。