如何在 ACK 中使用 MSE Ingress | 学习笔记(四)

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 快速学习如何在 ACK 中使用 MSE Ingress

开发者学堂课程【玩转容器服务进阶课程如何在 ACK 中使用 MSE Ingress】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/1079/detail/15852


如何在 ACK 中使用 MSE Ingress


四、 MSE 产品定位和竞争力


最后要给介绍一下 MSE 是什么,可能重点介绍的是 MSE Ingress ,但是 MSE 核心的定位是微服务,他是基于一个面对业界主流的一站式微服务的一个平台。为什么Ingress 这个产品不直接在 ACK 里面做而是在 MSE 微服务里面去做。

原因是首先就是网关,网关其实刚才介绍了有四个象限, Ingress 流量网关是他最主流的一个场景,基与现在流量网关和微服务网关的二合一,相当于把云原生网关全部整合,就推出了原生网关,然后支持Ingress 标准,那做微服务能力领域和安全领域的一个增强,当然如果说是典型的不用 Ingress ,用微服务网关也是可以的。那在整个领域里,可以看到 Ingress 是容器和微服务非常大的一个交际,交际的意思是 K8S 通过 Ingress 把入口网关和流量网关标准化,然后流量网关又是整个微服务的一个入口,标准的控制东西南北流量,而且目前来看云原生架构可以看到就是容器、微服务、不可变基础设施是满足这两个条件是一个原生架构。因此容器和微服务两个产品又在密切的演进跟集成,而Ingress 就是容器跟微服务体系最大的一个交际,也是最大的一个入口。

在此基础之上,往后路由不管是 Dubbo Spring-cloud还是 Envoy 服务网格的模式,路由都是可以做到的。然后在传统的微服务体系里, Nacos Zookeeeper Eureka各种服务发现机制也是支持的。然后在左边的整个微服务体系里,本质上都是连接和控制,把连接分布式做好了剩下的就是控制;右边其实是控制面,基于整个 Sentienl Opensergo 的一个标准,会通过限流降级熔断和灰度的能力来微服务体系的整个链路的高可用能力。服务治理的核心是帮业务把整个微服务的高可用进一步的提升,这样的话服务治理又是一个贯穿从网关到下面RTC 的全链路灰度的能力和治理的能力,甚至到数据库上的一个治理能力,这就是服务治理的一个竞争力。

36.png


那阿里巴巴在 MSE 里,除了刚才讲的这些竞争力,还有哪些优势,现在来具体讲一下。其实核心的一个优势就是一个三位一体的一个架构,三位一体主要指的就是阿里自研的体系、阿里巴巴开源的体系和商业化是一个架构,这样的好处是什么。

首先就是在开源,是一个在国内有50%以上使用用户的一个事实标准,然后会持续在开源发力,任何开源的问题团队都是能兜底的;

第二个就是在商业化上,因为刚才可以看到网关作为一个路口、一个关联井,集成的产品还是非常多的,他继承了安全的能力、容器的一些能力、自动发现的一些能力以及整个可观测的能力,那是一开箱即用的一个整体的解决方案,在帮助用户在整个公司入口建立一个安全高可用的一个解决方案是比较成熟的;

第三个就是在阿里内部,其实是经过阿里双11的一个大规模验证的一个方案,相比于很多小公司自己自研的一套体系,那这个是经过更大规模的一个考验的,那提供的是一个默认高可用的一个解决方案,默认高可用就是阿里微服务的默认优势,通过服务治理,通过面对失败的设计给用户默认高可用的一个微服务体系。

 

五、总结



当然这节课只讲了这一个入口,从 K8S 的入口去操作所有的 Ingress 的一个入口。当然如果说不喜欢 K8S 的这种模式,需要白屏的一种操作模式也是完全支持的,也会简单的去进行一个基本的介绍。如果说不喜欢用Yaml 这种模式去创建,那在 MSE 里如果创完网关之后,在这边也有一个叫服务来源,服务来源可以看到这里边的 K8S ,因为从 K8S 可以关联网关,当然也可以从网关里去关联 K8S 集群,可以看到默认的在这里可以支持 K8S 的服务发现模式、Nacos 的服务发现模式、 Zookeeper 的服务发现模式或者是共享的一些EDAS 的各种微服务的一个注册配置中心都是支持的,

37.png


这种就相当于如果不喜欢黑屏或者 Yaml 这种模式而去操作白屏,当然也都是支持的,这个就是在这块的一个能力。

 

六、一图了解 MSE 竞争力


MSE 的一图了解 MSE 竞争力和产品定位的一个东西,也系统整理了 MSE 整体的竞争力。

38.png

这种就相当于如果不喜欢黑屏或者 Yaml 这种模式而去操作白屏,当然也都是支持的,这个就是在这块的一个能力。


七、集中回答问题


1.在选择云原生网关的时选项很多,那么如何从云原生网关、自建和 ALB 中进行选择呢?

核心其实还是回到“ Ingress 实现现状: Nginx VS Envoy ”这里,其实阿里巴巴的整个 ALB SLB的内核本质是基于阿里的 Nginx 去做的,然后这种网关也是网关,但是 SLB ALB从产品定位上他叫网缘,那其实是网关。网缘就是做4层负载和roll 7层的路由能力,其实可以看到在 ALB 的整个体系里没有微服务和服务的概念,他只能做一些简单的 roll 7层的路由能力,他的选择的一个方式什么,比如对于没矢为服务的一些中小客户,他用4层的负载加上一些简单的一些 roll 7层 的一些路由能力,甚至没有微服务,使用ALB对于用户来说是更简单的一种选择。但是对于阿里云的一些头部客户大客户而言,因为他的整个微服务能力和安全的扩展能力是要求比较高的,那选择云原生网关是整个微服务能力和对应的安全能力扩展性会支持得更好。

2.第二个问题其实就是在“ Ingress 标准现状”这里的图上。阿里云其实每个领域之间都有自己的一个产品,其实更多的人讲流量网关,之前团队做的是微服网关像 stable getway 等是网上做,把这两个合二为一,包括安全能力也合二为一,这是团队的定位,但其实更多的是 two c 也就是相当于每个客户有对消费者的一个领域,那更多解决这个问题。API 网关很大的一个能力其实是集成,比如举个例子现在AWS API都非常的火,原因是开一家公司有很多 sauce ,一个接口要暴露给的下游去计费所以权限管理、计量计费,其实说对于 two b的场景, API 网关是非常强的,比如说做一个高德而高德上面有很多打车软件,他调用是按量付费,那其实需要的是 API 网关,他会统计调用次数,计量计费这个方面是做得非常好的。当然还有一些用户,比如说之前讲了很多用户叫 iPass 集成网关,他设计比如说老系统可能是 HTTP 而新系统可能是 Dubbo ,还有一些其他的系统类似 callback 的一些更传统的协议,这样的话新老系统一般没有人愿意动老系统,而是开发新的系统用新的架构,那新老系统之间用集成网关,包括这里支持的HTTP Dubbo 的一个协议转换,包括后边支持 HTTPJRPC 或者 JRPC 的一些互通的转换。本质上做的是这一领域相关的一些事情,那因此可以看到现在和API 网关的定位上,其实从领域上,一个是 two c的,一个是two b的。

3.因为最近和 ACK 团队也在合作了。合作其实就是这里的Controller 是一种创建的模式。然后预计在1~2个月之内,ACK 在创建 Ingress 、创建网关的过程中也会增加一个集成,那就先简单的给介绍一下。就目前来看,网络这边只有服务跟路由,那在未来1~2个月会在这里面加一个网关,网关这里就可以创建 ALR Ingress 网关、 MSE Ingress 网关或者用户之间的网关都可以,这是第一步。第二个就是在路由这边会天然地会增加,在这里会把这些Ingress 的资源聚合到一起,下拉或支持 ALB Ingress 多种的 Ingress 资源的定义模式,并且在整个 k8s 创建过程中现在可以选 Nginx 自建或者是 ALB Ingress ,未来会增加, MSE Ingress 的一个入口。

4.创建云原生网关的 controller 其实有两个地方,一个地方就是在整个应用市场的微服务里,可以创建Ingress controller ,这是一个入口;另外一个当进入整个集群之后,在整个应用的 harm 的里也可以创建对应的云原生网关。

 39.png


这里有两个入口创建云原生网关,目前只是 Controller ,如果真要创建网关还是要到刚才的配置里把自定义资源里通过Yaml 网关真正的创建出来。现在这一步是相当于通过黑屏让用户考一个 Yaml然后去创建出来的,


40.png

后边这一步的话会变成回到白屏的去支持让用户一键就可以创建网关。 

5.因为这节课只是演示了最基础的,因为要是只有网关一个产品,那只能染色到下边一个,比如是应用一、应用二相互的调用过程中,其实就是回到了一个系统,而这个系统就是整个微服务体系。那在入口染色之后就需要开通整个阿里服务治理,然后把这个标一路戴下去才能达到全链路灰度的能力,目前这个灰度能力已经具备了,因为是MSE 包括全链路灰度是一个团队,正在做一个产品化的集成,预计差不多1~2个月之内,就会把这个全链路的灰度能力通过产品化的方式去集成投出;第一个就是ACK MSE网关,包括后边那个服务体系可以做到全链路灰度;第二个无论采用Edase 还是 ACE ,也在做合作去支持这个全链路灰度的能力。

6.就是 Controller 对于每个人是不同的,但是这里的 Ingress 资源也就是刚才演示的,都是一样的,就是通过 Nginx 定义的资源,这边也可以读到,这边的路由跟你完全是同等的效果,可能就是在过渡期间需要安装Nginx Controller MSE IngressController ,是两个 Controller 并行,但是所有的能力路由全是一致的,而且能兼入 Nginx Ingress 80%以上核心的场景,但是复用是做不到的,但是对于使用者而言是体会不到这个差别的,举个例子就刚才演示的这个资源,为什么一点区别都没有。就是可以看到这里边的资源全部是通过Ingress Yaml 的标准方式去创建的,没有说在 MSE 上自己造一堆的资源,而是兼容了标准的Nginx 所有的这些注解。

41.png


因此让他没有任何的绑定,他对用户也都是平滑的。

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
1月前
|
缓存 Kubernetes Docker
容器服务ACK常见问题之容器服务ACK ingress websocket配置失败如何解决
容器服务ACK(阿里云容器服务 Kubernetes 版)是阿里云提供的一种托管式Kubernetes服务,帮助用户轻松使用Kubernetes进行应用部署、管理和扩展。本汇总收集了容器服务ACK使用中的常见问题及答案,包括集群管理、应用部署、服务访问、网络配置、存储使用、安全保障等方面,旨在帮助用户快速解决使用过程中遇到的难题,提升容器管理和运维效率。
|
3月前
|
Kubernetes 负载均衡 应用服务中间件
kubernetes—Ingress详解
kubernetes—Ingress详解
71 0
|
3月前
|
Kubernetes 应用服务中间件 nginx
|
4月前
|
Kubernetes 应用服务中间件 nginx
k8s ingress不生效的bug 解决了。
k8s ingress不生效的bug 解决了。
|
4月前
|
Kubernetes 负载均衡 应用服务中间件
k8s学习-Ingress(安装、模板、创建、删除)
k8s学习-Ingress(安装、模板、创建、删除)
96 0
|
1月前
|
容器
在容器服务ACK中,如果你想更改ALB Ingress的域名和端口
【2月更文挑战第15天】在容器服务ACK中,如果你想更改ALB Ingress的域名和端口
13 3
|
4月前
|
Kubernetes 负载均衡 应用服务中间件
k8s学习-CKA真题-七层负载均衡Ingress
k8s学习-CKA真题-七层负载均衡Ingress
50 0
|
4月前
|
Kubernetes 安全 网络协议
k8s教程(service篇)-ingress 7层路由机制(下)
k8s教程(service篇)-ingress 7层路由机制(下)
80 0
|
4月前
|
Kubernetes 网络协议 应用服务中间件
k8s教程(service篇)-ingress 7层路由机制(上)
k8s教程(service篇)-ingress 7层路由机制(上)
214 0
|
1月前
|
存储 Kubernetes Docker
容器服务ACK常见问题之阿里云控制台进不去了如何解决
容器服务ACK(阿里云容器服务 Kubernetes 版)是阿里云提供的一种托管式Kubernetes服务,帮助用户轻松使用Kubernetes进行应用部署、管理和扩展。本汇总收集了容器服务ACK使用中的常见问题及答案,包括集群管理、应用部署、服务访问、网络配置、存储使用、安全保障等方面,旨在帮助用户快速解决使用过程中遇到的难题,提升容器管理和运维效率。

推荐镜像

更多