【技术方案分享】CCE ELB Ingress PK Nginx Ingress 孰胜孰负?
目录:
1 华为云CCE ingress实现方式
1.1 ELB ingress 工作原理
1.2 Nginx ingress 工作原理
1.3 ingress 访问类型
1.4 验证方式2 Nginx ingress 方式创建ingress
2.1 新建无状态工作负载 Tomcat1
2.2 新建无状态工作负载 Tomcat2
2.3 创建ingress(IP访问)
2.4 创建ingress(域名访问),设置转发规则实现不同 URL 访问不同服务3 ELB ingress 方式创建ingress
3.1 创建无状态工作负载 Tomcat3
3.2 新建无状态工作负载 Tomcat4
3.3 创建ingress(IP访问)
3.4 创建ingress(域名访问),设置转发规则实现不同 URL 访问不同服务4 ELB ingress 与 Nginx ingress 的优缺点
4.1 Nginx ingress优缺点
4.2 ELB ingress优缺点
1 华为云CCE ingress实现方式
CCE支持两种Ingress Controller类型,ELB Ingress Controller由华为云自研,基于弹性负载均衡服务(ELB)实现流量转发;Nginx Ingress Controller使用Kubernetes社区维护的模板与镜像,通过Nginx组件完成流量转发。
1.1 ELB ingress 工作原理
1.2 Nginx ingress 工作原理
1.3 ingress 访问类型
ingress类型 | 访问类型 | 集群内访问(ClusterIP) | 节点访问(NodePort) |
---|---|---|---|
ELB ingress | 负载均衡路由 | 不支持 | 支持 |
ENI负载均衡路由 | 支持 | 不支持 | |
Nginx ingress | 负载均衡路由 | 支持 | 支持 |
ENI负载均衡路由 | 支持 | 不支持 |
1.4 验证方式
当前文章采用 ingress 的两种方式进行实操验证:
Nginx ingress + 负载均衡路由 + 节点访问(NodePort) →见第2章节
ELB ingress + ENI负载均衡路由 + 集群内访问(ClusterIP) →见第3章节
2 Nginx ingress 方式创建ingress
2.1 新建无状态工作负载 Tomcat1
- 无状态工作负载-step1-工作负载基本信息
- 无状态工作负载-step2-容器设置:开源镜像中心-tomcat
- 无状态工作负载-step3-工作负载访问设置:节点访问
- 无状态工作负载-step3-高级设置:高级设置保持默认,点击创建
- 进入容器,设置访问界面,内容为:It is a test!
2.2 新建无状态工作负载 Tomcat2
- 按照同样的步骤新建的tomcat负载
- 进入容器,设置访问界面,内容为:Test for ingress!
2.3 创建ingress(IP访问)
- 创建前提:安装nginx-ingress插件
安装步骤参考:https://support.huaweicloud.com/usermanual-cce/cce_01_0034.html
- 进入华为云CCE控制台,进入资源管理下的网络管理界面,点击ingress
- 添加ingress,开启“对接nginx”选项,设置转发规则如下
- 创建成功后,查看ingress
- 访问服务,进行验证
2.4 示例:创建ingress(域名访问),设置转发规则实现不同 URL 访问不同服务
说明:2.3章节的验证为IP直接访问,当前章节以域名访问进行验证
- DNS新建两个域名并解析到 1.1.1.1
DNS配置参考:https://support.huaweicloud.com/qs-dns/dns_qs_0002.html
- 新建ingress,增加转发规则,转发规则的域名设置为上一步新建的两个域名
- 查看ingress
注:由上图可知,增加后的ingress使用的是同一个ELB的IP进行服务访问
- 修改DNS的解析到ingress的访问IP
- 访问服务,进行验证
通过域名 ingress1.xxxxxxx 只能访问到 Test for ingress!
通过域名 ingress2.xxxxxxx 只能访问到 It is a test!
3 ELB ingress 方式创建ingress
3.1 创建无状态工作负载,Tomcat3
- 无状态工作负载-step1-工作负载基本信息,选择绑定弹性网卡
- 无状态工作负载-step2-容器设置:开源镜像中心-tomcat
- 无状态工作负载-step3-工作负载访问设置:集群内访问 ( ClusterIP )
- 无状态工作负载-step3-高级设置:高级设置保持默认,点击创建
- 进入容器,设置访问界面,内容为:It is a test ENI!
3.2 新建无状态工作负载 Tomcat4
- 按照同样的步骤新建的tomcat负载
- 进入容器,设置访问界面,内容为:Test for ingress ENI!
3.3 创建ingress(IP访问)
- 进入华为云CCE控制台,进入资源管理下的网络管理界面,点击ingress
- 添加ingress,选择ENI负载均衡路由,设置转发规则如下
- 创建成功后,查看ingress
- 访问服务,进行验证
3.4 示例:创建ingress(域名访问),设置转发规则实现不同 URL 访问不同服务
说明:3.3章节的验证为IP直接访问,当前章节以域名访问进行验证
- DNS新建两个域名并解析到 1.1.1.1
DNS配置参考:https://support.huaweicloud.com/qs-dns/dns_qs_0002.html
- 新建ingress,增加转发规则,转发规则的域名设置为上一步新建的两个域名
- 查看ingress
注:由以上步骤可知,增加ingress时可以选择新建ELB,使不同的ELB的转发不同的服务
- 修改DNS的解析到ingress的访问IP
- 访问服务,进行验证
通过域名 ingress3.xxxxxxx 只能访问到 It is a test ENI!
通过域名 ingress4.xxxxxxx 只能访问到 Test for ingress ENI!
说明:当前仅为演示操作,实际项目中可以根据服务的需要创建多个ingress实现服务转发。(一个ingress对应一个独享型 ELB)
4 ELB ingress 与 Nginx ingress 的优缺点
4.1 Nginx ingress优缺点
-
优点:
1、可自定义配置参数,详情参考:https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/
2、转发规则配置service同时支持集群内访问(ClusterIP)和节点访问(NodePort)
3、可以设置路由重定向 -
缺点
1、需要安装nginx-ingress 插件,占用node资源
2、需要自行升级,维护
2、性能依赖于pod资源配置
3、多个ingress使用同一个ELB(即nginx-ingress暴露服务的ELB),性能受ELB限制
4.2 ELB ingress优缺点
-
优点:
1、不需要进行插件安装,华为云直接提供,免维护,免升级
2、多个ingress可以使用多个ELB,高性能
3、ingress controller部署在master节点,不占用集群node资源 -
缺点
1、转发规则配置service 仅支持集群内访问(ClusterIP)或节点访问(NodePort)
2、不支持路由重定向
- 点赞
- 收藏
- 关注作者
评论(0)