Linkerd 2.2 发布,引入自动请求重试,支持自动注入

2019 年 2 月 18 日

Linkerd 2.2 发布,引入自动请求重试,支持自动注入

2 月 12 日 Linkerd 2.2 版本正式发布。这个版本主要引入了自动请求重试和超时,以及完全支持(非实验)的自动注入功能。它添加了一些新的 CLI 命令(包括 logs 和 endpoints),为 Linkerd 的控制平面提供诊断可见性。最后,它带来了两个令人兴奋的实验性功能:加密安全的客户端标识头和 CNI 插件,该插件可以避免在部署时需要 NET_ADMIN 内核功能。


此版本包括 Attest、Buoyant、Mesosphere、Microsoft、Nordstrom 等人的贡献。特别感谢所有提交问题、提交 PR、测试功能的人!


通过我们的周体验版本跟踪 2.x 分支的那些人已经看到了这些功能的实际应用。无论哪种方式,你都可以通过运行以下命令下载稳定的 2.2 版本:


curl https://run.linkerd.io/install | sh
复制代码


通过这种方式,体验所有的功能!


重试和超时


Linkerd 2.2 现在可以自动重试失败的请求,在应用程序出现部分故障时提高整体成功率。基于 2.1 版本中引入的服务配置文件模型,Linkerd 允许你为每个路由的基础配置此行为。


linkerd routes 的输出包括 ACTUAL_SUCCESS,线上请求的成功率,以及 EFFECTIVE_SUCCESS,调用者请求成功率,即在 Linkerd 完成重试之后。


当然,控制何时可以进行重试是安全使用重试的关键组成部分。Linkerd 2.2 允许你标记哪些路由是幂等(isRetryable),限制重试单个请求所花费的最长时间(timeout),以及配置可以重试的总体请求的百分比(retryBudget)。这些参数可以确保重试发生的安全性,并且不会在已经发生故障的系统中加重问题。


自动注入(取消注入和改进注入)


Linkerd 2.2 的自动注入是一个完全支持(非实验)的功能。自动注入功能允许 Kubernetes 集群在部署时自动添加(“注入”)Linkerd 的数据平面代理到应用程序 pods。将代理注入从客户端移植到集群上有助于确保所有 pods 统一地运行代理,无论它们如何部署。


Linkerd 2.2 还将自动注入的行为切换为选择加入而不是选择退出。这意味着,一旦启用,只有具有linkerd.io/inject: enabled 注释的命名空间或 pods 具有自动注入行为。


最后,对于客户端(非自动)注入,如果它们已在清单中指定,Linkerd 2.2 改进了 linkerd inject 命令来升级代理的版本(之前的行为是完全跳过它们),并引入了 linkerd uninject 命令用于从给定的 Kubernetes 清单中删除 Linked 的代理。


使用 CNI 插件更好地处理 NET_ADMIN


Linkerd 2.2 引入了一个新的实验性 CNI 插件,可在用户部署的应用程序的安全上下文之外进行网络配置。这使得 Linkerd 更适合多租户集群,因为管理员可能不希望向用户授予内核功能(特别是 NET_ADMIN)。


背景:将 Linkerd 的数据平面代理注入到 pod 中需要设置 iptables 规则,以便进出 pod 的所有 TCP 流量自动通过其代理,无需任何应用程序配置。通常,这是通过作为部署者的服务账号运行的 Kubernetes Init Container 来完成的。在单租户群集中,这没有问题,但在多租户集群中,这可能会产生问题:修改 iptables 规则需要内核的 NET_ADMIN 功能,但授予此功能会允许租户控制整个主机的网络配置。


使用 Linkerd 的新 CNI 插件,网络配置在 CNI 级别完成,有效地消除了用户需要 NET_ADMIN 内核功能的要求。这使得在多租户、安全意识环境中运行 Linkerd 变得更加实用。


这个插件由我们 Nordstrom Engineering 的朋友们贡献,并受到Istio 的CNI 插件的启发。特别感谢Cody Vandermyn 的这个功能。


客户端身份


Linkerd 2.2 引入了一种新的安全机制,用于对进入请求提供客户端身份。当启用—tls=optional 时,Linkerd 现在为每个请求增加了 l5d-client-id 头。应用程序代码可以使用这个头参数来实现授权,例如,要求对所有请求进行身份验证或限制对特定服务的访问。


这个头参数目前标记为实验性,但是为 Linkerd 提供全面的身份验证和授权机制迈出了关键的第一步。在未来几周,我们将发布 Linked 的路线图,用于在 Kubernetes 集群内安全地提供认证和通信加密。


Linkerd 的下一步计划


Linkerd 2.2 是来自全球各地贡献者的数月工作的结晶,我们非常高兴能够发布它!


在接下来的版本中,Linkerd 2.x 将继续完善可靠性、流量转移和安全性的相关功能(特别是围绕通信的身份和机密性)。从中期来看,我们也将努力减少 Linkerd 对 Kubernetes 的依赖。最后,Linkerd 1.x 继续积极开发,我们仍然致力于支持我们的 1.x 用户。


Linkerd 是一个社区项目,由Cloud Native Computing Foundation 托管。如果你有功能请求、问题或评论,我们很乐意你能加入我们快速发展的社区!Linkerd 在GitHub 上托管,我们在SlackTwitter邮件列表上拥有一个蓬勃发展的社区。快来加入吧!


查看英文原文:Announcing Linkerd 2.2


2019 年 2 月 18 日 17:442954

评论

发布
暂无评论
发现更多内容

来了,来了,你们要的Nginx教程来了

Java旅途

nginx

第7周-作业1

seng man

技术​选型的艺术

YourBatman

技术选型 湖北

web 性能压测工具

Z冰红茶

第7周总结:性能

慵秋

JVM系列之:String,数组和集合类的内存占用大小

程序那些事

Java JVM GC JOL

BIGO | Likee深度推荐模型的特征工程优化

InfoQ_3597a20b53cc

人工智能

架构训练营第七周作业

张锐

漫画:如何证明sleep不释放锁,而wait释放锁?

王磊

Java Wait Sleep

Kubernetes的拐点助推器:左手开源,右手边缘计算

华为云开发者社区

Kubernetes 容器 边缘计算 容器技术 华为云

计算机网络基础(八)---网络层-路由概述

书旅

计算机网络 网络协议 计算机基础 AS

web压力性能测试

周冬辉

压力测试

PV与UV你的网站也可以

北漂码农有话说

面试官拿System.out.println()考了我半个小时?我傻了

Java小咖秀

Java 面试

秒懂云通信:选云通信到底哪家强?

巨侠说

云通信 通信云

数据湖应用解析:Spark on Elasticsearch一致性问题

华为云开发者社区

大数据 spark elasticsearch 数据湖 华为云

百度人脸算法“飞速迭代”,多模态活体检测V3.1获银行卡检测中心增强级认证

百度大脑

人工智能 人脸识别 百度大脑

http请求压测工具

潜默闻雨

挑战10的1,143,913次方种算法组合:这都不是事儿!

华为云开发者社区

华为 算法 进化 华为云

前浪出新招,996已过时,互联网员工都开始住公司了!(爆公司信息)

程序员生活志

加班 996 007 互联网公司

新手村:MySQL 学习经验、资源的分享

多选参数

MySQL MySQL 高可用 MySQL优化

英特尔唐炯:竞争推动PC行业良性发展,促使英特尔前行

飞天鱼2017

【小白学YOLO】YOLOv3网络结构细致解析

华为云开发者社区

人工智能 网络 物体检测 华为云 网络层

直播中那几秒延时到底来自哪?

巨侠说

CDN 云直播 直播 直播带货

原生Ingress灰度发布能力不够?我们是这么干的

博云技术社区

云计算 容器 云原生 PaaS

进击的 Flink:网易云音乐实时数仓建设实践

Apache Flink

flink

性能测试与优化 和 操作系统与文件系统

满山李子

极客大学架构师训练营

程序设计理念-CentOs7实践Nginx-带来安装服务的通用法则

图南日晟

Nginx PHP-FPM 架构设计 环境安装

架构感悟 7- 性能优化何为

旭东(Frank)

为啥Underlay才是容器网络的最佳落地选择

博云技术社区

云计算 容器 容器网络

关于数据库索引的知识点,你所需要了解的都在这儿了

鄙人薛某

MySQL 索引结构 索引 MySQL优化

Linkerd 2.2 发布,引入自动请求重试,支持自动注入-InfoQ