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

简介: 快速学习如何在 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


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

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
Kubernetes 应用服务中间件 nginx
Kubernetes上安装Metallb和Ingress并部署应用程序
Kubernetes上安装Metallb和Ingress并部署nginx应用程序,使用LoadBalancer类型的KubernetesService
1383 118
|
Kubernetes 网络协议 应用服务中间件
Kubernetes Ingress:灵活的集群外部网络访问的利器
《Kubernetes Ingress:集群外部访问的利器-打造灵活的集群网络》介绍了如何通过Ingress实现Kubernetes集群的外部访问。前提条件是已拥有Kubernetes集群并安装了kubectl工具。文章详细讲解了Ingress的基本组成(Ingress Controller和资源对象),选择合适的版本,以及具体的安装步骤,如下载配置文件、部署Nginx Ingress Controller等。此外,还提供了常见问题的解决方案,例如镜像下载失败的应对措施。最后,通过部署示例应用展示了Ingress的实际使用方法。
1149 2
|
缓存 Kubernetes 负载均衡
在K8S中,ingress 有何作用?
在K8S中,ingress 有何作用?
|
Kubernetes 负载均衡 应用服务中间件
k8s学习--ingress详细解释与应用(nginx ingress controller))
k8s学习--ingress详细解释与应用(nginx ingress controller))
2950 0
|
Kubernetes 应用服务中间件 API
【Ingress 秘籍】集群进出流量的总管:揭秘 Kubernetes 中 Ingress 的终极奥秘!
【8月更文挑战第25天】Ingress是Kubernetes中用于管理HTTP与HTTPS流量进入集群的核心功能。作为集群内外通信的桥梁,Ingress通过定义规则将外部请求导向内部服务。本文详细介绍了Ingress的基本概念、配置方法及其实现方式。通过使用不同的Ingress控制器(如Nginx、Traefik等),用户可以根据需要选择最适合的方案。文中还提供了示例代码展示如何创建服务、部署应用及配置Ingress规则。
615 6
|
API UED 开发者
超实用技巧大放送:彻底革新你的WinForms应用,从流畅动画到丝滑交互设计,全面解析如何在保证性能的同时大幅提升用户体验,让软件操作变得赏心悦目不再是梦!
【8月更文挑战第31天】在Windows平台上,使用WinForms框架开发应用程序时,如何在保持性能的同时提升用户界面的吸引力和响应性是一个常见挑战。本文探讨了在不牺牲性能的前提下实现流畅动画与交互设计的最佳实践,包括使用BackgroundWorker处理耗时任务、利用Timer控件创建简单动画,以及使用Graphics类绘制自定义图形。通过具体示例代码展示了这些技术的应用,帮助开发者显著改善用户体验,使应用程序更加吸引人和易于使用。
379 0
|
Kubernetes API 网络安全
在K8S中,ingress该如何使用?
在K8S中,ingress该如何使用?
|
人工智能 运维 Kubernetes
阿里云容器服务ACK AI助手正式上线带来的便利性
作为开发者想必大家都知道,云原生容器技术的优势,尤其是近两年的随着容器技术的迅猛发展,Kubernetes(K8s)已成为广泛应用于容器编排和管理的领先解决方案,但是K8s的运维复杂度一直是挑战之一。为了应对这一问题,就在最近,阿里云容器服务团队正式发布了ACK AI助手,这是一款旨在通过大模型增强智能诊断的产品,旨在帮助企业和开发者降低Kubernetes(K8s)的运维复杂度。那么本文就来详细讲讲关于这款产品,让我们结合实际案例分享一下K8s的运维经验,探讨ACK AI助手能否有效降低K8s的运维复杂度,并展望ACK AI助手正式版上线后的新功能。
1042 2
阿里云容器服务ACK AI助手正式上线带来的便利性
|
存储 Kubernetes Docker
容器服务ACK常见问题之阿里云控制台进不去了如何解决
容器服务ACK(阿里云容器服务 Kubernetes 版)是阿里云提供的一种托管式Kubernetes服务,帮助用户轻松使用Kubernetes进行应用部署、管理和扩展。本汇总收集了容器服务ACK使用中的常见问题及答案,包括集群管理、应用部署、服务访问、网络配置、存储使用、安全保障等方面,旨在帮助用户快速解决使用过程中遇到的难题,提升容器管理和运维效率。
|
Kubernetes 监控 调度
阿里云容器服务ACK
阿里云容器服务ACK(Alibaba Cloud Container Service for Kubernetes)提供高性能、可伸缩的容器应用管理服务,支持企业级Kubernetes容器化应用的生命周期管理。在ACK中,利用cGPU(Containerized GPU)技术可以实现GPU资源的共享,提高GPU利用率,降低整体成本。
519 6

推荐镜像

更多