Istio

Knative Serving 0.14.0 版本变更

夙愿已清 提交于 2020-04-20 14:43:50
前言 Knative Serving在4月14日发布,这个版本正式把v1作为存储版本,把网络相关的集成移出到外部的仓库,还有就是一些扩缩容的改进。 概要 不再捆绑监控套件 我们决定不再捆绑监控套件,因为缺少社区其他人的兴趣,在2018年后就没更新过了。在接下来的版本中会停止发布,改为编写文档如何使用OpenTelemetry集成现有的监控系统。 切换存储版本(storage version)为V1 我们包含了一个迁移job帮助迁移现有的资源,具体看serving-storage-version-migration.yaml。 多个 net-* 仓库 我们的Istio集成已经移出serving到knative/net-istio Kourier移出到knative/net-kourier 有一个新的knative/net-http01项目用于实现auto-TLS 最低k8s版本依然保持1.15 因为GKE的依赖(CI/CD),没有按计划升级k8s版本到1.16。 扩缩容 在activator总是在链路的时候关闭指标抓取,提高效率 #7431 (thanks @dsimansk ) 增加指标用于评估指标抓取的开销 #7232 (thanks @rmoe ) “Metric”资源现在把潜在的错误信息也放在status里 #7525 (thanks @markusthoemmes )

Knative Serving 健康检查机制分析

折月煮酒 提交于 2020-04-20 10:19:06
作者| 阿里云智能事业群技术专家牛秋霖(冬岛) 导读 :从头开发一个Serverless引擎并不是一件容易的事情,今天咱们就从Knative的健康检查说起。通过健康检查这一个点来看看Serverless模式和传统的模式都有哪些不同,以及Knative针对Serverless场景都做了什么思考。 Knative Serving 模块的核心原理如下图所示,图中的 Route 可以理解成是 Istio Gateway 的角色。 当缩容到零时进来的流量就会指到 Activator 上面; 当 Pod 数不为零时流量就会指到对应的 Pod 上面,此时流量不经过 Activator; 其中 Autoscaler 模块根据请求的 Metrics 信息实时动态的扩缩容。 Knative 的 Pod 是由两个 Container 组成的:Queue-Proxy 和业务容器 user-container。架构如下: 咱们以 http1 为例进行说明:业务流量首先进入 Istio Gateway,然后会转发到 Queue-Proxy 的 8012 端口,Queue-Proxy 8012 再把请求转发到 user-container 的监听端口,至此一个业务请求的服务就算完成了。 粗略的介绍原理基本就是上面这样,现在咱们对几个细节进行深入的剖析看看其内部机制: 为什么要引入 Queue-Proxy?

Kubernets : You're speaking plain HTTP to an SSL-enabled server port

ε祈祈猫儿з 提交于 2020-04-18 06:10:41
问题 My Gateway file is as apiVersion: networking.istio.io/v1alpha3 kind: Gateway metadata: name: my-gateway-secure namespace: myapp spec: selector: istio: ingressgateway # use istio default controller servers: - port: number: 443 name: https protocol: HTTPS tls: mode: SIMPLE serverCertificate: /etc/istio/ingressgateway-certs/tls.crt privateKey: /etc/istio/ingressgateway-certs/tls.key #caCertificates: /etc/istio/ingressgateway-ca-certs/kbundle.crt hosts: - "*" apiVersion: networking.istio.io

Service Mesh在百度网盘数万后端的实践落地

亡梦爱人 提交于 2020-04-13 02:07:10
本文作者:HelloDeveloper 1 背景 起初,在网盘快速发展期,为了快速上线,采用了服务单体化 + 主干开发模式进行研发,随着用户规模爆发式的增长以及产品形态的丰富,单体化的不足就体现出来了,于是架构上采用了微服务架构,开始对业务逻辑进行拆分部署。 服务拆分之后,也引入了新的问题,具体如下: 请求路由: 服务部署从物理机向虚拟化方式迁移中,有大量的切流量操作,需要相关的上游都进行升级上线修改,效率低下 故障管理: 单实例异常、服务级别异常、机房故障异常、网络异常等,严重缺失或者不完善,同时配套的故障定位也没有,服务稳定性不足 流量转发: 不同的服务采用了不同的框架,甚至裸框架,策略不完善,导致负载不均衡 研发效率: 相同的功能点,需要在不同的语言框架上实现一次,浪费人力,同时升级周期比较长,收敛效率低 2 解决方案 - UFC 2.1 UFC 发展史 为了解决这个问题,从2015年底开始思考解决方案,确定了解决问题的 核心在于管控请求流量 ,在2016年开始 自研网络流量转发中间件 - UFC(Unified Flow Control) ,业务通过同机部署的agent进行服务通信,相关的发展史如下: 2.2 UFC 和 Service Mesh的关系 后来在调研业界相关技术的时候,发现了istio(业界Service Mesh的典型代表) ,从而发现了Service

阿里云专家详解 2020 服务网格发展趋势

人盡茶涼 提交于 2020-04-11 18:05:55
作者 | 王夕宁 阿里巴巴高级技术专家 关注“阿里巴巴云原生”公众号,参与文末留言互动,即有机会获得赠书福利! 本文摘自于由阿里云高级技术专家王夕宁撰写的《Istio 服务网格技术解析与实践》一书,文章从基础概念入手,介绍了什么是服务网格及 Istio,针对 2020 服务网格的三大发展趋势,体系化、全方位地介绍了 Istio 服务网格的相关知识。 你只需开心参与公众号文末互动,我们负责买单!技术人必备书籍《Istio 服务网格技术解析与实践》免费领~ 有 外文 指出,2020 年 Service Mesh 技术将有以下三大发展: 快速增长的服务网格需求; Istio 很难被打败,很可能成为服务网格技术的事实标准; 出现更多的服务网格用例,WebAssembly 将带来新的可能。 什么是服务网格 Gartner 2018 关于服务网格技术趋势分析报告,展示了一系列的服务网格技术,划分服务网格技术的依据是基于应用服务代码是否必须对其服务网格感知及其是否锁定,或锁定的程度。 基于编程框架的网格技术可以帮助开发人员构建一个架构体系良好的服务,但这会导致应用代码与框架和运行时环境的紧密耦合。而基于 Sidecar 代理的服务网格技术不会为开发人员设置这些障碍,并且使其管理和维护更加轻松,能够提供更灵活的方法来配置运行时策略。 在微服务环境中,可将单一应用程序分解为独立的多个组件

第二十一章 九析带你轻松完爆 service mesh

筅森魡賤 提交于 2020-04-10 08:12:26
系列文章: 总目录索引: 九析带你轻松完爆 istio 服务网格系列教程 目录 1 前言 2 邀约 3 Routing Rule 语法 4 Routing Rule 优先级 5 Routing Rule 匹配规则/条件 5.1 基于 HttpMatchRequest 5.2 基于权重 6 流量操作(HTTPRoute) 1 前言 如果你对博客有任何疑问,请告诉我。 2 邀约 你可以从 b 站搜索 “九析”,获取免费的、更生动的视频资料: 3 Routing Rule 语法 在上节中介绍了 Virtual Service 的概念,并运行了一个简单的样例,大家应该对 Virtual Service 有了一个大致的了解。 Virutal Service 中最重要的概念就是路由规则(Routing Rule),注意跟 Istio traffic management 中的另外一个概念——目的地规则(Destination Rule)区分,前者是一个逻辑概念,而后者则跟 Virtual Service 一样,是实际可以部署到 K8S 上的 Istio 资源。 在解释路由规则之前,这里先举一个例子: 又到了招聘的高峰期,HR 陆续招聘了一批校园毕业生。招聘结束后,这些毕业生要分配到具体的工作岗位。分配的规则如下: 一、986 学校毕业的学生分配到基础平台组 二

Go语言开发的微服务框架

喜你入骨 提交于 2020-04-09 05:35:04
 Go语言开发的微服务框架有什么?   1、项目名称:Istio   项目简介:Istio是由Google、IBM和Lyft开源的微服务管理、保护和监控框架。使用istio可以很简单的创建具有负载均衡、服务间认证、监控等功能的服务网络,而不需要对服务的代码进行任何修改。   2、项目名称:Go-kit   项目简介:Go-kit 是一个 Go 语言的分布式开发包,用于开发微服务。   3、项目名称:Jaeger   项目简介:Jaeger是Uber的分布式跟踪系统 ,基于google dapper的原理构建, 以Cassandra作为存储层。   4、项目名称:Micro   项目简介:Micro是一个专注于简化分布式系统开发的微服务生态系统。可插拔的插件化设计,提供强大的可插拔的架构来保证基础组件可以被灵活替换。   5、项目名称:fabio 项目简介:fabio 是 ebay 团队用 golang 开发的一个快速、简单零配置能够让 consul 部署的应用快速支持 http(s) 的负载均衡路由器。   6、项目名称:Goa   项目简介:Goa 是一款用 Go 用于构建微服务的框架,采用独特的设计优先的方法。   7、项目名称:gizmo   项目简介:gizmo是纽约时报开源的go微服务工具,提供如下特性:标准化配置和日志;可配置策略的状态监测端点;用于管理 pprof

grpc断路器之sentinel

 ̄綄美尐妖づ 提交于 2020-03-23 23:39:40
3 月,跳不动了?>>> 背景 为了防止下游服务雪崩,这里考虑使用断路器 技术选型 由于是springboot服务且集成了istio,这里考虑三种方案 istio hystrix sentinel 这里分别有这几种方案的对比 微服务断路器模式实现:Istio vs Hystrix Sentinel 与 Hystrix 的对比 首先考虑的是istio,但是在使用istio进行熔断、分流时,流量不稳定,并且返回状态以及数据达不到预取效果,后面考虑到sentinel自动集成了grpc,所以这里使用sentinel。 步骤 1、增加相关依赖 <dependencies> <dependency> <groupid>com.alibaba.cloud</groupid> <artifactid>spring-cloud-starter-alibaba-sentinel</artifactid> </dependency> <dependency> <groupid>com.alibaba.csp</groupid> <artifactid>sentinel-grpc-adapter</artifactid> <version>1.7.1</version> </dependency> </dependencies> <dependencymanagement> <dependencies>

docker中集成istio出现拉取配置中心数据失败导致服务启动失败

微笑、不失礼 提交于 2020-03-16 10:51:10
由于在k8s使用了grpc,所以这里我们集成istio来实现http2的自动发现以及负载均衡,但是随着节点增加,istio之前同步配置时间边长导致第一次启动时,服务启动拉取配置时istio却还没初始化好相关配置,而导致第一次启动失败,错误如下 这里有几种方案 让服务启动时先暂停5s,再加载配置信息 加载配置失败一直重试知道成功 修改istio与业务pod启动时间间隔 修改dockerfile 检查istio是否启动,启动成功后再启动业务pod 经过评估,方案1需要代码侵入,还是无法完全解决问题, 方案2 也是需要修改业务代码,很多业务都得跟着修改,改动大 方案3 这个在最新版本中的k8s有这个功能,升级有风险 方案4 侵入式小 最后选择方案四,也参考了相关资料 https://github.com/istio/istio/issues/16222 最终需要修改dockerfile来解决,并且将检查istio健康状况改成了检查配置中心是否可用 ENTRYPOINT ["/bin/sh","-c"] CMD ["until curl --head 'http://config-center/info' ; do echo Waiting for Sidecar; sleep 3 ; done ; echo Sidecar available; java -Xmx3200m

正在直播 邀您观看|Service Mesh 在百度网盘数万后端的实践落地

与世无争的帅哥 提交于 2020-03-09 12:53:00
直播地址: https://developer.baidu.com/live/show/3 (临时页面,直播开始后,会有画面播放) 讲师介绍:李鸿斌 百度资深研发工程师 内容大纲: 如何实现一个Service Mesh 网盘版本的Service Mesh的扩展功能 基于Service Mesh之上的服务治理实践 适合对象: 了解 Service Mesh 的概念、应用场景、基本功能 了解业界的一些落地实践,比如 Istio 来源: oschina 链接: https://my.oschina.net/u/4299156/blog/3190434