Istio

阿里 双11 同款流控降级组件 Sentinel Go 正式 GA,助力云原生服务稳稳稳

假装没事ソ 提交于 2020-12-08 17:12:55
作者 | 赵奕豪(宿何) Sentinel 开源项目负责人 来源| 阿里巴巴云原生公众号 前言 微服务的稳定性一直是开发者非常关注的话题。随着业务从单体架构向分布式架构演进以及部署方式的变化,服务之间的依赖关系变得越来越复杂,业务系统也面临着巨大的高可用挑战。 在生产环境中大家可能遇到过各种不稳定的情况,比如: 大促时瞬间洪峰流量导致系统超出最大负载,load 飙高,系统崩溃导致用户无法下单。 “黑马”热点商品击穿缓存,DB 被打垮,挤占正常流量。 调用端被不稳定第三方服务拖垮,线程池被占满,调用堆积,导致整个调用链路卡死。 这些不稳定的场景可能会导致严重后果,但很多时候我们又容易忽视这些与流量/依赖相关的高可用防护。大家可能想问:如何预防这些不稳定因素带来的影响?如何针对流量进行高可用的防护?如何保障服务“稳如磐石”?这时候我们就要请出阿里双十一同款的高可用防护中间件 —— Sentinel。在今年刚刚过去的天猫 双11 大促中,Sentinel 完美地保障了阿里成千上万服务 双11 峰值流量的稳定性,同时 Sentinel Go 版本也在近期正式宣布 GA。下面我们来一起了解下 Sentinel Go 的核心场景以及社区在云原生方面的探索。 Sentinel 介绍 Sentinel 是阿里巴巴开源的,面向分布式服务架构的流量控制组件,主要以流量为切入点,从限流、流量整形

Service Mesh 初体验

瘦欲@ 提交于 2020-12-06 07:40:21
前言 计算机软件技术发展到现在,软件架构的演进无不朝着让开发者能够更加轻松快捷地构建大型复杂应用的方向发展。容器技术最初是为了解决运行环境的不一致问题而产生的,随着不断地发展,围绕容器技术衍生出来越来越多的新方向。 最近几年,云计算领域不断地出现很多新的软件架构模式,其中有一些很热门的概念名词如:云原生、函数计算、Serverless、ServiceMesh等等,而本文将初窥一下ServiceMesh的面纱。下面结合自己的理解尽量以通俗的话进行叙述。 背景和定义 微服务及服务治理 在微服务之前的软件开发中,往往通过一个应用的方式将所有的模块都包括进去,并一起编译、打包、部署、运维。这种方式存在很多问题,由于单个应用包含的东西太多,其中某个模块出现问题或者需要更新那么整个应用就需要重新部署。这种方式给开发和运维带来了很大的麻烦。随着应用的逐渐复杂,单个应用涉及的东西就会越来越多,慢慢地大家发现了其中很多的缺点,开始对服务进行划分,将一个大的应用按照不同的维度进行划分从而产生很多个小的应用,各应用之间会形成一个调用关系,每个小的应用由不同的开发负责,大家各自部署和运维,这样微服务就出现了。 由于微服务中各应用部署在不同的机器上,服务之间需要进行通信和协调,相比单个应用来说会麻烦很多。在同一个应用内不同方法之间的调用由于在相同的内存中,在代码编译打包时已经进行了链接

Failing to establish mqtt connection to VerneMQ cluster in k8s behind Istio proxy

允我心安 提交于 2020-12-06 03:58:25
问题 I'm setting up k8s on-prem k8s cluster. For tests I use single-node cluster on vm set up with kubeadm. My requirements include running MQTT cluster (vernemq) in k8s with external access via Ingress (istio). Without deploying ingress, I can connect (mosquitto_sub) via NodePort or LoadBalancer service. Istio was installed using istioctl install --set profile=demo The problem I am trying to access VerneMQ broker from outside the cluster. Ingress (Istio Gateway) – seems like perfect solution in

复杂环境下落地Service Mesh的挑战与实践

南笙酒味 提交于 2020-12-04 13:43:31
导读 在私有云集群环境下建设 Service Mesh ,往往需要对现有技术架构做较大范围的改造,同时会面临诸如兼容困难、规模化支撑技术挑战大、推广困境多等一系列复杂性问题。本文会系统性地讲解在美团在落地 Service Mesh 过程中,我们面临的一些挑战及实践经验,希望能对大家有所启发或者帮助。 一、美团服务治理建设进展 1.1 服务治理发展史 首先讲一下 OCTO,此前美团技术团队公众号也分享过很 相关的文章 ,它是美团标准化的服务治理基础设施,现应用于美团所有事业线。OCTO 的治理生态非常丰富,性能及易用性表现也很优异,可整体概括为 3 个特征: 属于公司级的标准化基础设施。技术栈高度统一,覆盖了公司 90% 以上的应用,日均调用量达数万亿次。 经历过较大规模的技术考验。覆盖数万个服务、数十万个节点。 治理能力丰富。协同周边治理生态,实现了 SET 化、链路级复杂路由、全链路压测、鉴权加密、限流熔断等治理能力。 回顾美团服务治理体系的发展史,历程整体上划分为四个阶段: 第一阶段是基础治理能力统一 。实现通信框架及注册中心的统一,由统一的治理平台支撑节点管理、流量管理、监控预警等运营能力。 第二阶段重点提升性能及易用性 。4 核 4GB 环境下使用 1KB 数据进行 echo 测试,QPS 从 2 万提升至接近 10 万,99 分位线 1ms;也建设了分布式链路追踪

深度剖析Service Mesh服务网格新生代Istio

会有一股神秘感。 提交于 2020-12-03 15:12:14
Service Mesh新秀,初出茅庐便声势浩荡,前有Google,IBM和Lyft倾情奉献,后有业界大佬俯首膜拜,这就是今天将要介绍的主角,扛起Service Mesh大旗,掀起新一轮微服务开发浪潮的Istio! 今天的主角名叫 Istio,估计很多同学在此之前可能完全没有听过这个名字。请不必介意,没听过很正常,因为Istio的确是一个非常新的东西,出世也才四个月而已。 今天的内容将会分成三个部分: 1.介绍: 让大家了解Istio是什么,以及有什么好处,以及Istio背后的开发团队 2.架构: 介绍Istio的整体架构和四个主要功能模块的具体功能,这块内容会比较偏技术 3.展望: 介绍Istio的后续开发计划,探讨未来的发展预期 一、介绍 Istio是什么:Istio是Google/IBM/Lyft联合开发的开源项目,2017年5月发布第一个release 0.1.0, 官方定义为: Istio:一个连接,管理和保护微服务的开放平台。 按照isito文档中给出的定义: Istio提供一种简单的方式来建立已部署的服务的网络,具备负载均衡,服务到服务认证,监控等等功能,而不需要改动任何服务代码。 简单的说,有了Istio,你的服务就不再需要任何微服务开发框架(典型如Spring Cloud,Dubbo),也不再需要自己动手实现各种复杂的服务治理的功能(很多是Spring

云原生体系下的技海浮沉与理论探索

感情迁移 提交于 2020-12-02 11:13:11
简介: 云原生技术的发展已经成为不可阻挡的趋势,目前正是云原生技术大幅度运用到商业化产品的最好时机。在技术体系的变革后,必然会迎来业务模式的变革,我们都知道未来会变,如何抓住云原生这个契机,找到属于时代的重要风口呢? 作者 | 王银利(芸峥) 1 . 概述 攻技者,短之;理论者,长之;践行者,胜之。可以这么说,一座城市的良心就体现在下水道上,不论这座城市有多少高楼大厦,建设得有多么宏伟,只要是下雨天,雨水就变成了城市良心的检验者。如果由城市建设来类比云原生体系的建设,那么云原生的良心又应该是什么?谁是云原生的暴风雨?谁又是云原生良心的检验者? 云原生带来的业务价值非常多,主要有如下几条: 1)快速迭代:天下武功,唯快不破。我们想要在残酷的市场竞争中争得一席之地,就必须先发制人。云原生的本质就是帮助业务快速迭代,核心要素就是持续交付。 2)安全可靠:云原生通过可观测机制,可以快速让我们从错误中恢复,同时通过逻辑多租和物理多租等多种隔离方式,限制非法使用。 3)弹性扩展:通过将传统的应用改造为云原生应用,做到弹性扩缩容,能够更好地应对流量峰值和低谷,并且达到降本提效的目的。 4)开源共建:云原生通过技术开源能够更好地帮助云厂商打开云的市场,并且吸引更多的开发者共建生态,从一开始就选择了一条“飞轮进化”式的道路,通过技术的易用性和开放性实现快速增长的正向循环

Istio 1.1尝鲜记

邮差的信 提交于 2020-11-29 10:51:44
近几天Istio1.1的发布引起了技术界巨大的反响,为了让更多技术爱好者能够亲自体验Istio1.1,公司的技术大佬赶出了这篇尝鲜教程,其中包括环境、安装、可能遇到的问题及解决方式等,希望对大家有所帮助。 环境 已经安装了 Kubernetes 集群,有1个 master 和4个 node。操作系统都是 CentOS Linux 7。 下载 Istio 安装文件 curl -L https: // git.io/getLatestIstio | ISTIO_VERSION=1.1.0 sh - export PATH = " $PATH:/root/istio-1.1.0/bin " 安装 Tiller 这里选择在 Helm 和 Tiller 的环境中使用 helm install 命令进行安装的方式。 kubectl apply -f install/kubernetes/helm/helm-service-account.yaml  假如已经安装过,结果如下: helm init --service-account tiller 安装 istio-init chart 更新 Helm 的本地包缓存: helm repo add istio.io "https://gcsweb.istio.io/gcs/istio-prerelease/daily-build/release-1

阿里巴巴硅谷 Istio 专家解读Istio 1.0 发布

风流意气都作罢 提交于 2020-11-27 06:31:39
来源:阿里巴巴中间件 Istio 1.0 于北京时间8月1日0点正式发布!虽然比原本官网公布的发布时间晚了9个小时,但这并未影响到Istio在社区的热度。 Istio 是 Service Mesh概念的具体实现 。2018年被称为 Service Mesh 原年,誉为新一代的微服务架构,有了Service Mesh, 像Docker和Kubernetes标准化部署操作一样来标准化我们的应用程序运行时的操作便成为可能。 Istio是其中最成熟和被广泛接受的开源项目。它是连接、管理和保护微服务的开放平台。 今天发布的1.0 版本是一个重要的里程碑。这意味着Istio的所有核心功能都已经可以落地部署,不再只是演示版了。 本文来自阿里巴巴中间件事业部硅谷团队 Istio 技术专家 Andy 在 Istio上的实践和对1.0版本的解读,Andy长期关注 Service Mesh,在Cloud Foundry,Kubernetes,Envoy上有着丰富的实践和开发经验。 从功能上说,1.0版本是对0.8版本的补充和加强。从0.8之前版本到1.0版本,改变的部分从 网络,策略和遥测,适配器,到安全 等几大模块,都有补充和增强。 一、Istio 新功能简介 1.0 版本中的新功能大致如下: ➤ 网络 使用 Virtual Service 进行 SNI 路由 流式 gRPC 恢复 旧版本

Istio authorization policy not applying on child gateway

依然范特西╮ 提交于 2020-11-27 01:51:53
问题 What I am trying to achieve: block all traffic to a service, containing the code to handle this within the same namespace as the service. Why: this is the first step in "locking down" a specific service to specific IPs/CIDRs I have a primary ingress GW called istio-ingressgateway which works for services. $ kubectl describe gw istio-ingressgateway -n istio-system Name: istio-ingressgateway Namespace: istio-system Labels: operator.istio.io/component=IngressGateways operator.istio.io/managed

Istio authorization policy not applying on child gateway

空扰寡人 提交于 2020-11-27 01:51:52
问题 What I am trying to achieve: block all traffic to a service, containing the code to handle this within the same namespace as the service. Why: this is the first step in "locking down" a specific service to specific IPs/CIDRs I have a primary ingress GW called istio-ingressgateway which works for services. $ kubectl describe gw istio-ingressgateway -n istio-system Name: istio-ingressgateway Namespace: istio-system Labels: operator.istio.io/component=IngressGateways operator.istio.io/managed