通过 CCE Ingress 实现虚机和容器服务的统一接入
更新时间:2024-06-17
使用场景
很多情况下,我们的集群中的虚拟机会同时存在非容器化部署的服务。如果希望使用一个应用型 BLB 可以同时向容器化部署的服务和虚拟机上非容器化部署的服务转发请求,可以按照本文档进行配置。
方案概述
概念
- 应用型 BLB : 适用于用户复杂应用部署架构的 BLB,允许用户配置不同的转发规则(4层或7层)。
- 监听器转发规则:对进入 BLB 数据包按照设定的规则进行匹配,并转发到不同的目标组上。
- 目标组 - 服务器组:数据包转发的目标,内容是一组百度智能云服务器。
- 目标组 - IP 组:数据包转发的目标,内容是一组 IP 地址,IP 地址可以是 VPC 内的 IP 地址(如节点地址、Ingress 地址等)。
原理
在 CCE 集群中,容器化部署的一个或多个服务(以下简称容器化服务)一般通过 Ingress 接入外部流量;而非容器化部署的服务(以下简称虚机服务)一般通过自行配置应用型 BLB 来接入外部流量。
我们可以为应用型 BLB 配置 HTTP 转发规则,并将 Ingress 的 VPC 内 IP 地址添加到用户自行配置的应用型 BLB 的 IP 组中,将访问容器化服务的流量导入 Ingress。
网络拓扑示例
配置完成后的网络拓扑如图所示。
访问非容器化服务的请求被应用型 BLB 直接转发到各台后端虚拟机上;访问容器化服务的请求先被转发到 Ingress,再被转发到各个 Service 上。
本指南所涉及的内容如图中蓝色方框所示,包括服务器组配置、IP组配置与监听器转发规则的设置。
操作步骤
1. 准备工作
在开始操作前首先确认下述工作已经完成:
- 虚机服务已经部署并正常运行
- 容器化服务已经部署并正常运行,相关 Ingress 已经创建完成
- 对外暴露的应用型 BLB 及其 HTTP/HTTPS 监听器已经创建完成
2. 设置服务器组(对于虚机服务)
此步目的是将虚机服务所在的虚机加入应用型 BLB 的后端服务器组中。
- 进入应用型 BLB 控制台,点击『目标组-添加服务器组』
- 按需设置『服务器组名称』与『描述』
- 设置『开放端口』。这里端口指的是虚机服务所示使用的端口,本例为 HTTP:80。并按实际情况配置健康检查规则。
- 添加后端服务器。这里需要添加的是正在运行虚机服务的服务器。
- 点击『确认』完成创建。创建后注意查看服务器组和服务器组中后端服务器的健康检查状态。如果状态异常,需要检查配置是否正确,后端服务是否正常运行。
3. 设置IP组(对于容器化服务)
此步目的是将容器化服务相关的 Ingress 加入应用型 BLB 的后端 IP 组中。
- 确认 Ingress 的内网 IP 地址。可以在『CCE控制台-选择集群-流量接入-Ingress』查询到。本例为 192.168.0.208
- 进入应用型 BLB 控制台,点击『目标组-添加IP组』
- 按需设置『IP组名称』与『描述』
- 设置『开放协议』,本指南IP组内容是Ingress,而 Ingress 使用 HTTP 协议,所以此处选择 HTTP 即可。并按实际情况配置健康检查规则。
- 加入IP。这里将第1步记录的 Ingress 内网地址与端口填入即可。
- 点击确认完成创建。注意等待健康检查状态正常。
4. 设置监听器转发规则
此步是设置转发规则,以将不同的请求正确地分流到容器化服务或虚机服务中。
- 进入 BLB 控制台,进入应用型 BLB 实例地页面,选择『监听设置』,并展开监听器规则列表。
- 设置 BLB 向虚机服务转发请求的规则。点击『添加规则』,设置匹配条件以及对应的『目标组-服务器组』,即之前设定的服务器组。本例为 www.example.com /aaa。
- 设置 BLB 向容器化服务转发请求的规则。点击『添加规则』,设置匹配条件以及对应的『目标组-IP组』,即之前设定的服务器组。本例为 www.example.com /bbb。
- 所有配置完成。请测试功能是否符合预期。