Istio 2020 年 Roadmap——一切为了商用

原文地址:https://preliminary.istio.io/zh/blog/2020/tradewinds-2020/,由 ServiceMesher 社区翻译。

Istio 解决了人们在运行微服务时遇到的实际问题。甚至早期的预发行版本就已经可以帮助用户诊断其体系架构中的延迟,提高服务的可靠性以及透明地保护防火墙后的流量。

去年,Istio 项目成长巨大。经过 9 个月的酝酿,在 2019 年第一季度发行 1.1 之前,我们设定了一个季度发布节奏的目标。我们知道,持续且可预测地交付非常重要。我们计划连续三个季度发布三个版本,并且我们为实现了这一目标感到自豪。

过去一年,我们改进了构建和测试基础架构,从而提高了质量并简化了发布周期。我们将用户体验提高了一倍,添加了许多命令使网格的操作和调试变得更加简单。我们还看到为 Istio 做出贡献的开发人员和公司数量急剧增长,最终,我们成为了 GitHub 增长最快的十大项目中排名第 4 名!

2020 年,Istio 有宏伟的目标,并且我们正在努力中。与此同时,我们坚信良好的基础设施应该“无聊”。在生产中使用 Istio 应该是无缝的体验;性能不应该成为问题,升级应该是非事件性的,复杂的任务应自动化。随着我们对更强大的可扩展性的投入,我们认为 Istio 在专注于现在成就的同时,可以加快服务网格领域的创新步伐。以下是我们在 2020 年主要工作的详情。

更快、更简单

从第一天起,Istio 就通过 Mixer 组件提供了可扩展性支持。Mixer 是一个平台,允许使用自定义适配器充当数据平面与策略及遥测后端之间的中介。Mixer 必定会增加请求的开销,因为它必须扩展到进程之外。因此,我们正在向一种可以直接在代理中进行扩展的模型转变。

Istio 的认证和授权策略已经涵盖了 Mixer 用于策略执行的大多数用例,这些策略使您可以直接在代理中控制 workload 到 workload 以及终端用户到 workload 的授权。常见的监控用例也已经转移到代理中,我们引入了代理内支持,以便将遥测发送到 Prometheus 和 Stackdriver。

我们的基准测试表明,新的遥测模型可显著减少延迟,并可提供行业领先的性能,同时降低 50% 的延迟和 CPU 消耗。

新的 Istio 可扩展性模型

新的 Mixer 模型使用 Envoy 中的扩展来提供更多功能。Istio 社区正在领导 Envoy 的 WebAssembly(Wasm)运行时的实现,Wasm 让我们可以使用超过 20 种的语言来开发模块化、沙盒化的扩展。可以在代理继续提供流量的同时动态加载、重载扩展。Wasm 扩展程序还可以通过 Mixer 无法做到的方式来扩展平台。它们可以充当自定义协议处理程序,并在通过 Envoy 时转换有效负载,简而言之,它们可以执行与 Envoy 中内置的模块相同的操作。

我们正在与 Envoy 社区一起研究发现和分发这些扩展的方法。我们希望使 WebAssembly 扩展像容器一样易于安装和运行。我们的许多合作伙伴已经编写了 Mixer 适配器,并与我们一起将其移植到 Wasm。如何编写自己的扩展并进行自定义集成?我们正在开发相关的指南和代码实验室。

更换扩展模型后,我们还可以删除数十个 CRD。与 Istio 集成的每个软件都不再需要唯一 CRD。

通过 preview 配置文件安装 Istio 1.5 不会再安装 Mixer。安全起见,如果您是从以前的版本升级,或通过 default 配置文件安装,我们仍会保留 Mixer。当使用 Prometheus 或 Stackdriver 进行度量时,建议您尝试新模式并查看性能提高了多少。

如果有需要,您可以保持安装并启用 Mixer。最终,Mixer 将成为 Istio 单独的发行组件,成为 istio-ecosystem的一部分。

减少移动部分

我们还将简化其余控制平面的 deployment。为此,我们将几个控制平面组件合并为一个组件:Istiod。该二进制文件包括 Pilot、Citadel、Galley 和 Sidecar 注入器的功能。这种方法从许多方面改善了 Istio 的安装和管理,降低了安装和配置的复杂性、维护工作量以及问题诊断时间,同时提高了响应速度。关于 Istiod 的更多内容请查看 Christian Posta 的这篇博客。

我们将 istiod 作为 1.5 中所有配置文件的默认配置。

为了减少每个节点的占用空间,我们放弃了用于分发证书的节点代理,并将其功能迁移至已经在每个 Pod 中运行的 istio-agent 中。从图片来看,我们正在从这里:

Istio 目前的架构。

Istio 2020 年的架构。

2020年,我们将继续专注于普及,实现默认 零配置 的目标,该默认设置不需要您更改应用程序的任何配置即可使用 Istio 的大多数功能。

改进生命周期管理

为了改进 Istio 的生命周期管理,我们使用了基于 operator 的安装方式。这里介绍 Istio Operator CRD 的两种安装模式

  • 人为触发:使用 istioctl 将设置应用至集群。

  • 机器触发:使用一个控制器,实时观察 CRD 的改动并使其生效。

在 2020 年,升级 Istio 也将变得更加容易。我们将添加对 Istio 控制平面新版本的”金丝雀”支持,这使您可以同时运行现有版本的和新版本,并将数据平面逐渐切换至新版本。

默认安全

Istio 已经为强大的服务安全性提供了基础:可靠的 workload 身份、强大的访问策略、全面的审核日志记录。我们正在为这些功能提供稳定的 API;许多 Alpha API 都将在 1.5 版中过渡为 Beta 版,我们希望到 2020 年底它们都将成为 v1 版本。要了解有关 API 状态的更多信息,请参见我们的功能页面。

默认情况下,网络流量也变得更加安全。继许多用户可以在评估时启用它之后,自动双向 TLS 已成为 Istio 1.5 中的推荐做法。

此外,我们将让 Istio 所需的权限更少,并简化其依赖性,从而使 Istio 成为更强大的系统。在以前,您必须使用 Kubernetes Secrets 将证书安装到 Envoy,这些证书作为文件挂载至每个代理中。而现在,通过密钥发现服务(SDS) ,我们可以安全地分发这些证书,而不必担心它们会被计算机上的其他 workload 拦截。该模式将成为 1.5 中的默认模式。

摆脱节点代理,不仅简化了部署,而且消除了对整个集群范围内 PodSecurityPolicy 的要求,从而进一步改善了集群的安全性。

其它功能

这是 Istio 在 2020 年一些值得期待的、令人兴奋的事情:

  • 与更多托管的 Kubernetes 环境集成,目前已有 15 个供应商提供了 Istio 服务网格,这些公司包括:Google、IBM、Red Hat、VMware、Alibaba 以及 Huawei。

  • 更多的关注 istioctl 及其帮助诊断问题的能力。

  • 将基于 VM 的 workload 更好地集成到网格中。

  • 继续努力使多群集和多网络网格更易于配置、维护和运行。

  • 与更多的服务发现系统集成,包括 Functions-as-a-Service。

  • 实现新的 Kubernetes service API(目前正在开发中)。

  • 增强存储库,以便开发追踪功能。

  • 让没有 Kubernetes 的 Istio 可以更轻松地运行!

从大海到天空,Istio 期待您的加入!

点击 阅读原文 查看更多

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/311252.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SQL(七) - 事务、索引、视图

事务(Transaction) 3.1、什么是事务? 一个事务是一个完整的业务逻辑单元,不可再分。 比如:银行账户转账,从A账户向B账户转账10000.需要执行两条update语句: update t_act set balance balan…

python二维数组遍历输出每行最大值_如何在二维数组中找到每行的最大值?

例如,我有一个二维数组:[[0.0,0.24320757858085434,0.14893361727523413,0.29786723455046826,0.18838778030301612,0.12160378929042717],[0.23717478210768014,0.0,0.16770789675478251,0.20539938644228997,0.25981195646349819,0.1299059782317491],…

GCD、LCM模板

最大公约数GCD 整数a和b的最大公约数记为gcd(a,b)。 代码如下: int gcd(int a,int b) {return b 0?a:gcd(b,a%b); }int gcd(int a, int b) {return b ? gcd(b, a % b) : a; }最小公约数LCM 整数a和b的最小公倍数记为lcm(a,b)。 代码如下: int lcm(i…

如何编写高性能的C#代码(二)

使用Benchmark.NET对C# 代码进行基准测试的简介在我以前的文章中[10],我介绍了该系列文章[11],在其中我将分享我的经验,同时了解C#和.NET Core(corefx)框架的新性能。在本文中,我想着重于对现有…

flutter图片预览_flutter好用的轮子推荐四-可定制的图片预览查看器photo

前言Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。IT界著名的尼古拉斯高尔包曾说:轮子是IT进步的阶梯!热门的框架千篇一律,好用轮子万里挑一!Flutter作为这两年开始崛起的跨平台开发…

pandas的apply函数解析

apply函数 apply函数是pandas里面所有函数中自由度最高的函数。该函数如下: DataFrame.apply(func, axis0, broadcastFalse, rawFalse, reduceNone, args(), **kwds)该函数最有用的是第一个参数,这个参数是函数,相当于C/C的函数指针。 这个…

如何编写高性能的C#代码(一)

原文来自互联网,由长沙DotNET技术社区编译。如译文侵犯您的署名权或版权,请联系小编,小编将在24小时内删除。作者介绍:史蒂夫戈登(Steve Gordon)是Microsoft MVP,Pluralsight的作者,…

hdu 2069 Coin Change(改)-dp

有5种面值的硬币&#xff0c;即1分&#xff0c;5分&#xff0c;10分&#xff0c;25分&#xff0c;50分。输入一个钱数s&#xff0c;输出组合方案的数量。 s<250&#xff0c;硬币数量不限。 代码如下&#xff1a; #include <iostream> using namespace std; const i…

博途plc连接电脑_PLC报错,电脑连接不了PLC

需要进行S7-1200的固件版本更新。更新CPU的固件具体步骤如下&#xff1a;第一步&#xff1a;使用电脑通过读卡器清除存储卡中内容。注意&#xff1a;不要格式化存储卡&#xff01;第二步&#xff1a; 从西门子官方网站下载最新版本的固件文件。下载并解压缩&#xff0c;用户可以…

SQL(八)- python执行SQL语句

PyMySQL python 3.x版本中连接MySQL数据库使用第三方库pysqhl&#xff1b;python 2.x版本中连接MySQL数据库使用第三方库mysqldb&#xff1b; 连接PyMySQL 安装&#xff1a; pip install pymysql连接 (1)用python连接mysql&#xff0c;执行sql语句&#xff0c;返回mysql当…

从Java转向.NET/C#,Are You OK?

最近由于项目变动&#xff0c;需要用.NET/C#做开发&#xff0c;经过一段时间的学习和培训&#xff0c;对这个技术栈有了一定的理解。大家可能都知道Java和.NET/C#很像&#xff0c;这里粗略的把两者做一个对比&#xff0c;希望对感兴趣的童鞋有所帮助。如果现在有人问我&#xf…

如何看待潘石屹搞python_潘石屹考了99分的Python,到底是一种什么存在?

去年&#xff0c;当地产大佬潘石屹要把学习Python作为生日礼物送给自己的时候&#xff0c;微博上还多是一阵调侃之声。可能正是印证了Python程序员们常常挂在嘴边的“人生苦短&#xff0c;就学Python”的口头禅&#xff0c;时年56岁的小潘同学要再一次抓住“青春”的尾巴吧。为…

python机器学习、数据分析常用第三方库(实时更新)

常用镜像源&#xff1a; 清华&#xff1a;https://pypi.tuna.tsinghua.edu.cn/simple 阿里&#xff1a;http://mirrors.aliyun.com/pypi/simple/ 豆瓣&#xff1a;http://pypi.douban.com/simple/ 华中理工大学&#xff1a;http://pypi.hustunique.com/ 山东理工大学&#xff…

树的节点值之和

题目背景 墨家家主有棵树。 题目描述 给定一个保存树节点信息的数据结构&#xff0c;它包含了树节点唯一的 id &#xff0c;树节点值 和 直系子节点的 id 。 比如&#xff0c;树节点1是树节点2的父节点&#xff0c;树节点2是树节点3的父节点。他们相应的树节点值为 9 , 4 , …

.NET Core开发实战(第21课:中间件:掌控请求处理过程的关键)--学习笔记(上)...

21 | 中间件&#xff1a;掌控请求处理过程的关键这一节讲解一下如何通过中间件来管理请求处理过程中间件工作原理next 表示后面有一个委托&#xff0c;每一层每一层套下去可以在任意的中间件来决定在后面的中间件之前执行什么&#xff0c;或者说在所有中间件执行完之后执行什么…

angularjsl路由_AngularJs ng-route路由详解

本篇基于ng-route来讲下angular中的路由&#xff0c;路由功能主要是 $routeProvider服务 与 ng-view 实现。ng-view的实现原理&#xff0c;是根据路由的切换&#xff0c;动态编译html模板——$compile(html)(scope)。前提首先需要在页面引入angular和angular-route&#xff0c;…

pandas中Series的map函数详解

Series的map函数 Series的map方法可以接受一个函数或含有映射关系的字典型对象。使用map是一种实现元素级转换以及其他数据清理工作的便捷方式。DataFrame中对应的是applymap()函数&#xff0c;当然DataFrame还有apply()函数 1.字典映射 例如&#xff0c;对数据的某个字段进…

简单的二叉树创建与遍历

编一个程序&#xff0c;读入用户输入的一串先序遍历字符串&#xff0c;根据此字符串建立一个二叉树&#xff08;以指针方式存储&#xff09;。 例如如下的先序遍历字符串&#xff1a; ABC##DE#G##F### 其中“#”表示的是空格&#xff0c;空格字符代表空树。建立起此二叉树以后&…

tof摄像头手势识别_一种基于TOF手势识别的控制系统的制作方法

本发明属于汽车零配件技术领域&#xff0c;尤其是一种基于TOF手势识别的控制系统。背景技术&#xff1a;随着触摸屏技术的不断推广&#xff0c;用户已经适应并逐渐熟悉了与机器的互动。现在&#xff0c;人机互动技术已迈上了更高的台阶&#xff0c;进入了手势识别时代。随着手势…

疫情期间,千万级系统宕机N次,老板撂下狠话:没法把性提升10倍,全员解雇!...

性能调优整体思路作为一名团队技术核心&#xff0c;如何让系统跑得通、跑得稳、跑得快是必然会面对的场景。性能分析是一个大课题&#xff0c;不同的架构、不同的应用场景、不同的程序语言分析的方法若有差异&#xff0c;抽象一下大致分为两类&#xff1a;自底向上&#xff1a;…