Istio

第四十九章 九析带你轻松完爆 Istio

天涯浪子 提交于 2020-08-08 05:01:49
系列文章: 总目录索引: 九析带你轻松完爆 istio 服务网格系列教程 目录 1 前言 2 邀约 3 上章总结 4 监听器 4.1 TCP 监听器 4.2 UDP 监听器 1 前言 如果你对博客有任何疑问,请告诉我。 2 邀约 你可以从 b 站搜索 “九析”,获取免费的、更生动的视频资料: 3 上章总结 上节介绍了 Envoy 的基础配置信息,如下图所示: 上面配置信息重点介绍了两块内容,管理信息(admin 部分)和静态配置信息(static_resources 部分)。管理信息包括 Envoy 的 web 管理控制台。在用 Docker 运行时可对外开放 9901 端口(并对所有客户端可见,即 address 为 0.0.0.0)。关于如何运行 Envoy 可参考我上一篇文章,轻松完爆就是。运行后的结果如下图所示: 从上图可知,对外服务端口 9901 已经开启。打开浏览器访问,如下图所示: 静态配置信息主要包括两部分内容,分别是监听器(listener,今天介绍的主角)和集群(cluster),如下图所示: listener 是 Envoy 对外提供的监听端口,默认 10000。客户端通过此端口可以与 Envoy 建立通讯,获取连接(connection)。此外,在监听器上还可设置过滤器链(filter_chains),链上设置多过滤器,这样的设置可保证对进入 Envoy

Istio DestinationRule 目标规则

試著忘記壹切 提交于 2020-08-08 02:45:08
概念及示例 与 VirtualService 一样, DestinationRule 也是 Istio 流量路由功能的关键部分。您可以将虚拟服务视为将流量如何路由到给定目标地址,然后使用目标规则来配置该目标的流量。在评估虚拟服务路由规则之后,目标规则将应用于流量的“真实”目标地址。 特别是,您可以使用目标规则来指定命名的服务子集,例如按版本为所有给定服务的实例分组。然后可以在虚拟服务的路由规则中使用这些服务子集来控制到服务不同实例的流量。 目标规则还允许您在调用整个目的地服务或特定服务子集时定制 Envoy 的流量策略,比如您喜欢的负载均衡模型、TLS 安全模式或熔断器设置。在目标规则参考中可以看到目标规则选项的完整列表。 apiVersion: networking.istio.io/v1alpha3 kind: DestinationRule metadata: name: my-destination-rule spec: host: my-svc trafficPolicy: loadBalancer: simple: RANDOM subsets: - name: v1 labels: version: v1 - name: v2 labels: version: v2 trafficPolicy: loadBalancer: simple: ROUND_ROBIN -

为什么Uber微服务架构使用多租户

此生再无相见时 提交于 2020-08-07 13:01:53
云栖号资讯:【 点击查看更多行业资讯 】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! Uber服务的高性能主要依赖于在当前平台上快速以及稳定的开发新特性能力,和对应服务使用什么技术栈无关。Uber平台最根本的能力是基于微服务架构,这是一种常用的结构化风格,也就是由各种互操作的服务组成的应用。 微服务架构可以提供很好的伸缩性,同时也能够支持稳定的部署和模块化。在Uber,不同的工程师团队都是基于互操作的服务来工作,所以确保我们的技术栈既要能够安全的发布新的变动,也要能够基于模块化方式可靠的使用架构的已有部分,这点非常重要。总而言之,这些功能能够提高开发者的开发速度以及快速的发布周转(turnaround)次数,另外还可以给我们提供基于独立调度(schedules)构建的灵活性,同时依然可以满足服务级别协议(SLAs)。 在一个微服务架构中允许多系统共存是利用微服务稳定性以及模块化最有效的方式之一,这种方式一般被称为多租户(multi-tenancy)。租户可以是测试,金丝雀发布,影子系统(shadow systems),甚至服务层或者产品线,使用租户能够保证代码的隔离性并且能够基于流量租户做路由决策。对于传输中的数据(data-in-flight)(例如,消息队列中的请求或者消息)以及静态数据(data-at-rest)(例如,存储或者持久化缓存)

Service Mesh 高可用在企业级生产中的实践 | 线上直播回顾

拟墨画扇 提交于 2020-08-07 09:54:27
Service Mesh Virtual Meetup 是 ServiceMesher 社区和 CNCF 联合主办的线上系列直播。本期为 Service Mesh Virtual Meetup#1 ,邀请了四位来自不同公司的嘉宾,从不同角度展开了 Service Mesh 的应用实践分享,分享涵盖来自陌陌和百度的 Service Mesh 生产实践,Service Mesh 的可观察性和生产实践以及与传统微服务中可观察性的区别,还有如何使用 SkyWalking 来观测 Service Mesh。 本文根据5月13日晚,百度高级工程师罗广明的主题分享《Service Mesh 高可用在企业级生产中的实践》整理。文末包含本次分享的视频回顾链接以及 PPT 下载地址。 前言 Service Mesh 在企业落地中有诸多挑战,当与传统微服务应用共同部署治理时可用性挑战更为严峻。本次分享将以 Service Mesh 与 Spring Cloud 应用互联互通共同治理为前提,着重介绍基于 Consul 的注册中心高可用方案,通过各种限流、熔断策略保证后端服务的高可用,以及通过智能路由策略(负载均衡、实例容错等)实现服务间调用的高可用。 Service Mesh 与 Spring Cloud 应用的互通、互联 微服务是时下技术热点,大量互联网公司都在做微服务架构的推广和落地。同时

Kubernetes 中的渐进式交付:蓝绿部署和金丝雀部署

徘徊边缘 提交于 2020-08-06 04:40:01
渐进式交付 是持续交付的下一步, 它将新版本部署到用户的一个子集,并在将其滚动到全部用户之前对其正确性和性能进行评估, 如果不匹配某些关键指标,则进行回滚。 这里有一些有趣的项目,使得渐进式交付在 Kubernetes 中变得更简单。 我将使用一个 Jenkins X 示例项目 对它们之中的三个进行讨论:Shipper、Istio 以及 Flagger。 Shipper shipper 是来自 booking.com 的一个项目, 它对 Kubernetes 进行了扩展,添加了复杂的部署策略和多集群编排( 文档 )。 它支持从一个集群到多个集群的部署,允许多区域部署。 Shipper 通过一个 shipperctl 命令行进行 安装 。 它增加不同集群的配置文件来进行管理。 请注意这个与 GKE 上下文相关的 问题 。 Shipper 使用 Helm 包来部署,但是它们没有随着 Helm 一起安装,它们不会在 helm list 的输出显示。 同样地,deployments 的版本必须是 apps/v1 , 否则 shipper 将不能编辑 deployment 来添加正确的标签和副本数量。 使用 shipper 部署都是与从旧版本( 现有版本 )过渡到新版本( 竞争版本 )相关。 这是通过创建一个新的 应用对象 实现的, 它定义了部署需要通过的多个阶段。例如下面 3 个步骤过程:

SpringCloud 应用在 Kubernetes 上的最佳实践 — 线上发布(可灰度)

送分小仙女□ 提交于 2020-08-05 18:17:30
简介: 前三篇文章我们介绍了应用的开发和部署,那么在应用成功上云后,我就要面对应用的管理话题了,这一篇我们来看看如何做线上发布,并且是可灰度的。 作者 | 白寂 阿里云开发工程师 导读 :前三篇文章我们介绍了应用的开发和部署,那么在应用成功上云后,我就要面对应用的管理话题了,这一篇我们来看看如何做线上发布,并且是可灰度的。 相关文章推荐: 《SpringCloud 应用在 Kubernetes 上的最佳实践 —— 开发篇》 《SpringCloud 应用在 Kubernetes 上的最佳实践 — 部署篇(开发部署)》 《SpringCloud 应用在 Kubernetes 上的最佳实践 — 部署篇(工具部署)》 前言 在新版本上线时,无论是从产品稳定性还是用户对新版本的接受程度上考虑,直接将老应用升级到新版本应用都有很大风险的。我们一般的做法是,保证新老版本同时在线,并且先将少部分流量切换到新版本应用上,同时在此期间对新版本的应用请求进行观察。在确认新版本没有问题后,再逐步将更大比例的流量切换到新版本上。这个过程的核心是可以对流量的流入转发规则进行配置,EDAS 的金丝雀发布能力,提供了多个版本同时在线的能力,并且提供了灵活的配置规则来给不同的版本进行流量分配。 部署在 EDAS Kubernetes 集群中的 Spring Cloud 微服务应用

6大服务网格工具比较

你说的曾经没有我的故事 提交于 2020-08-05 15:35:53
服务网格(Service mesh) 已经不是一个新鲜概念,但它实现了连接运行在Kubernetes作为容器化平台之上的微服务,这使得服务网格的想法更加流行。如果没有服务网格,每个微服务都需要配置以接收(或发送)连接到其他需要与之通信的微服务,但服务网格完全改变了这一状况。 与此前需要手动配置以及投入大量的时间精力来维护微服务之间的连接所不同的是,开发人员现在可以创建一个网格,使得微服务彼此通信可靠、可控以及安全。Kubernetes和服务网格是相互作用的,主要是因为使用服务网格可以在不增加工作量的情况下,实现更复杂的容器化架构。 因此,有很多方式可以在Kubernetes顶层建立一个服务网格。在本文中,我们将比较一些你可以用于建立服务网格的工具,你可以分别了解到它们的优劣势进而选出最适合自己的服务网格工具。 与AWS环境完美适配:AWS App Mesh 官网: https://aws.amazon.com/app-mesh/ 由于现在许多基于Kubernetes的应用程序和微服务都运行在Amazon Web Services环境中,所以很难不谈到AWS App Mesh。顾名思义,AWS App Mesh是亚马逊自己的服务网格,用于为Amazon services创建服务网格层。 作为亚马逊的产品,AWS App Mesh利用结合了Envoy的专有技术作为其服务代理。AWS

赛题解析|初赛赛道三:服务网格控制面分治体系构建

余生颓废 提交于 2020-08-05 05:26:45
首届云原生编程挑战赛正在报名中,初赛共有三个赛道,题目如下: 赛道一:实现一个分布式统计和过滤的链路追踪 赛道二:实现规模化容器静态布局和动态迁移 赛道三:服务网格控制面分治体系构建 立即报名 (报名时间即日起至06/29): https://tianchi.aliyun.com/specials/promotion/cloudnative#problem-definition 本文主要针对赛道三题目做出剖析,帮助选手更高效的解题。 背景知识 “服务网格” 是近年来非常火热的技术,其全托管的思维非常适合云原生场景。“服务网格” 核心分为控制面与数据面:数据面主要是一个名为 Sidecar 的代理组件,它通过接收控制面发送的路由与控制信息来定向转发或处理数据。这样一些坐落在服务网格里的应用就将整个分布式逻辑交给了底层,自己不用关心了。一旦与底层解耦,灵活性大大增加,更符合云原生的标准。 题目解析 本题的核心考查点还是如何让服务网格的控制面支撑大规模的 Sidecar 实例。为什么会产生这个问题呢?因为在目前服务网格影响最广的实现 Istio 架构中,控制平面 Pilot 负责整个系统的路由转译工作,也就是说所有服务的实例信息都需要通过 Pilot 下发给每一个 Sidecar,当然用户可以通过 SidecarScope 来设置个别 Sidecar 对于系统服务的可见性,但这只会影响到

istio create external ip for specific service

徘徊边缘 提交于 2020-08-03 05:51:28
问题 I've deployed successfully an app to K8s with istio We have gw which we use and virtual service like the following: apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: bher-virtualservice namespace: ba-trail spec: gateways: - bher-gateway hosts: - trialio.cloud.str http: - match: - uri: prefix: "/" - uri: prefix: "/login" - uri: prefix: "/static" - uri: regex: '^.*\.(ico|png|jpg)$' route: - destination: host: bsa.ba-trail.svc.cluster.local service.namespace.svc

官宣 | 首届云原生编程挑战赛报名通道正式开启

旧街凉风 提交于 2020-07-29 10:41:35
“云原生编程挑战赛”是“中间件性能挑战赛”的全新升级!自 2015 年开始,大赛已经成功举办了五届,共吸引超过 12000 支队伍,15000 名顶尖选手参加,覆盖 10 余个国家和地区。 往届大赛毕业生是这样说的: 视频点击 这里 经历了跌宕起伏的比赛过程,感悟到冠军不是最重要的,重要的是参与了这场提升自己的赛事,攻克了自己的懈怠,结识了优秀的技术同胞。 --北京字节跳动网络技术有限公司--吴得瑀/微软中国有限公司--黎强/北京大学在读博士--张博洋 比赛带我们的不仅仅是荣誉,对生活和工作都会产生影响,这些影响可能是生活上更积极,工作上更注重个人技术能力提升。 --原中央军委后勤保障部信息中心--刘兰峥/深圳市烟草专卖--陆华俊 赛题本身的吸引力激发了我们参加比赛的欲望,通过参加比赛,让我们更相信,只要用心去做自己所热爱的事情,纵使是平凡的人也会做出伟大的事情。 --成都钛数智能科技有限公司--吴小刚/贵阳货车帮科技有限公司--陈林江/成都国美大数据科技有限公司--叶琦 中间件挑战赛的赛题场景性强,更具有挑战性。比赛过程中有分歧,有争议,最终克服困难,共同冲到了终点。 --成都电子科技大学,(在校生)程智凌&彭禹豪 作为尚未毕业的大学生,赛题对我们来说难度较高,有过想放弃的想法,但还是坚持到了最后,这份经历对我们来说是宝贵的,将让我们更加坚定以后的职业选择。 --广东工业大学,