Service Mesh - Istio 1.6 简化以提升用户体验

原文:https://makeoptim.com/service-mesh/istio1-6

前言

Istio 今年的更新频率可谓非常稳健。在 3 月 5 号发布 1.5 这个重大更新版本后,又陆续发布了 4 个 1.5.x 版本,在 5 月 21 号又迎来了 1.6 版本。

Istio 1.5 的主旨是拥抱单体,简化架构。而 Istio 1.6 则主要聚焦在简化使用、生命周期体验、可观测性、虚拟机支持、网络,以提升用户的使用体验。

简化使用

Istiod

在 Istio 1.5 中,引入了 Istiod 这个新模块,将多个服务的功能组合到 Istiod 中,减少了组件数量,提升了安装的便捷性并且提高了性能。在 Istio 1.6 中,完成了此过渡,并将功能完全转移到 Istiod 中,删除了 Citadel、Sidecar injector 和 Galley 的单独部署。可以理解为,1.6 版本这其实是对 1.5 版本未完成工作的收尾

Kubernetes 中新的 alpha 功能

对于使用 Kubernetes 中新的 alpha 功能的开发人员来说,Istio 的使用体验得到了简化。如果在 Kubernetes EndpointPort 或 ServicePort API 中使用新的 appProtocol 字段(在 1.18 中为 Alpha),则不再需要在服务中附加名称字段来表示协议

更好的生命周期体验

新版本为安装与升级创造了更好的体验。

  • 命令行工具 istioctl 提供了更好的诊断信息,具有更简单的安装命令,还提供了彩色状态
  • 添加 istioctl install 命令来替代 manifest apply 的安装过程,用更直观、更精简的命令改善安装过程的体验。
  • 升级 Istio 的功能也得到了改善。首先,支持 Istio 控制平面本身的金丝雀。这意味着您可以在现有版本旁边安装新版本的控制平面,并有选择地让代理使用新版本。详见此文章
  • istioctl upgrade 命令执行一步到位的升级(仍然可以控制自己更新代理)。详见升级文档

更好的可观测性

许多公司采用 Istio 仅仅是为了更好地观察分布式应用程序,因此 Istio 团队继续在可观测性上进行投资。新版本中做了许多改进,具体的更新内容可参见变更列表。这里提一下一些亮点:更多的可配置性、更好的控制跟踪采样率的能力,以及更新了 Grafana 仪表盘

更好的虚拟机支持

对于将非 Kubernetes 工作负载添加到网格中的用户(例如,部署在 VM 上的工作负载),新的 WorkloadEntry 资源使此操作比以往更加容易。此 API 旨在为 Izio 中的非 Kubernetes 工作负载提供一流的呈现。它将 VM 或裸机工作负载提升到与 Kubernetes Pod 相同的级别,而不仅仅是具有 IP 地址的端点。现在可以将同一服务的部署(VM 和 Pods)混合在一起,从而可将 VM 工作负载迁移到 Kubernetes 集群,且不会中断往返于该集群的流量

简单来说就是,Istio 通过添加了一个叫 WorkloadEntry 的自定义资源完成了对虚拟机的支持。它可以将非 Kubernetes 的工作负载添加到网格中,这使得你有能力为 VM 定义和 Pod 同级的 Service。以前,你只能通过 ServiceEntry 里的 address 等字段来实现对非 Pod 工作负载的支持。WorkloadEntry 的引入将改善这块的体验。

apiVersion: networking.istio.io/v1alpha3
kind: WorkloadEntry
metadata:
  name: details-svc
spec:
  serviceAccount: details-legacy
  address: vm1.vpc01.corp.net
  labels:
    app: details-legacy
    instance-id: vm1

基于 VM 的工作负载仍然是 Istio 团队的重中之重,我们一起期望在即将发布的版本中看到更多关于此的信息。

网络改进

网络是服务网格的核心,因此在新版本中还引入了一些出色的流量管理功能。新版本改进了对 Secrets 的处理,从而为 Kubernetes Ingress 提供了更好的支持。

新版本默认启用了 Gateway SDS,以提供更安全的体验。还增加了对 Kubernetes Service API 的实验性支持

变更列表

流量管理

  • 增加了 VirtualService 代理。这允许在多个可组合的 VirtualServices 中指定网格路由配置。
  • 添加了新的 Workload Entry CRD。这样可以简化非 Kubernetes 工作负载的配置以加入网格。
  • 添加了 gateway 拓扑的配置。此地址根据 gateway 部署拓扑提供正确的 X-Forwarded-For headers 和 X-Forwarded-Client-Cert headers。
  • 添加了对 Kubernetes Service API 的实验性支持。
  • 添加了对用于为 Kubernetes 1.18 中引入的端口 appProtocol 选择协议的支持。
  • 已更改默认情况下启用 Gateway SDS。文件安装的 Gateway 将继续可用,以帮助用户过渡到安全 Gateway SDS。
  • 添加了对从 Secrets、pathType、IngressClass 中读取证书的支持,并为 Kubernetes ingress 提供了更好的支持。
  • 添加了新的 proxy.istio.io/config annotation 以覆盖每个 Pod 的代理配置。
  • 删除了 proxy 的大多数配置 flags 和环境变量。这些现在可以直接从网格配置中读取。
  • 将 proxy 就绪探测器更改端口为 15021
  • 修复了在某些情况下阻止了外部 HTTPS/TCP 通信的 bug

安全

  • 向 Istio-agent 添加了 JSON Web 令牌(JWT)缓存,从而提供了更好的 Istio Agent SDS 性能。
  • 修复了 Istio Agent 证书设置宽限期计算
  • 删除了安全 alpha API。Istio 1.5 中引入的安全性 beta API 是 Istio 1.6 中唯一受支持的安全性 API。

遥测

  • 增加了对请求分类过滤器实验性支持。这使操作员可以根据请求信息配置用于遥测的新属性。此功能的主要用例是通过 API 方法标记流量
  • 添加了实验性的全网格跟踪配置 API。该 API 提供了对跟踪采样率,URL 标签的最大标签长度以及网格内所有跟踪的自定义标签提取的控制。
  • 向 proxies 和控制平面工作负载添加了标准的 Prometheus scrape 注释,从而改善了 Prometheus 集成体验。这样就不需要专门的配置来发现和使用 Istio 指标。有关更多详细信息,请参见 Prometheus 的操作指南
  • 增强了网格操作员的功能,可以基于可用请求和响应属性集上的表达式来添加和删除 Istio 指标中使用的标签。这样可以改善 Istio 对自定义 v2 版指标生成的支持。
  • 更新了默认遥测 v2 配置,以避免使用 host header 在 gateway 上提取目标服务名称。这样可以防止由于 host header 不受信任而导致基数不受约束,并且意味着对于命中 blackhole 并 passthrough 在 gateway 处的请求,将省略目标服务标签。
  • grafana.com 在 Istio 发布过程中增加了 Grafana 仪表板的自动发布。请参阅 Istio 组织页面以获取更多信息。
  • 更新了 Grafana 仪表板以适应新的 Istiod 部署模型。

安装

  • 增加了对 Istio 金丝雀升级的支持。有关更多信息,请参见升级指南
  • 删除了传统的 Helm 图表。要从他们那里进行迁移,请参阅升级指南
  • 新增用户为 istiod 添加自定义主机名的能力。
  • 已将使用的网关 readiness 端口从 15020 更改为 15021。如果 ingressgateway 从 Kubernetes 网络负载平衡器检查 Istio 的运行状况,则需要更新该端口。
  • 添加了将安装状态保存 CustomResource 在群集中的功能。
  • 将 Istio 安装更改为不再管理安装名称空间,从而提供了更大的灵活性。
  • 删除了单独的 Citadel,Sidecar Injector 和 Galley 部署。这些默认情况下在 1.5 中已禁用,并且所有功能已移至 Istiod。
  • 删除了旧 istio-pilot 配置,例如 Service。
  • 从默认端口中删除了端口 15029-15032 ingressgateway。建议改为通过主机路由公开遥测插件。
  • 从安装中删除了内置的 Istio 配置,包括网关 VirtualServices,和 mTLS 设置。
  • 添加了一个名为 preview 的新 profile, 允许用户试用新的实验功能,包括启用 WASM 的遥测 v2。
  • 添加了 istioctl install 命令来代替 istioctl manifest apply
  • 添加了 istiod-remote chart,使用户可以试验管理远程数据平面的中央 Istiod

istioctl

  • 为 istioctl 命令添加了更好的显示特性
  • 使用 –set 标志路径时,增加了对 key:value 列表选择的支持。
  • 使用 Kubernetes 覆盖修补程序时,增加了对删除和设置非标量值的支持。

文档

添加了新的和改进的 Istio 文档。有关更多信息,请参阅网站内容更改

小结

Istio 1.6 版本继续按着官方的路线图朝着更加简单,更好的安装体验迈进,并且还添加了其他功能。但是,由于使用了 Istiod,去除了 Mixer,但对于中心化的限流、黑白名单这样实用性功能,还没有看到相应的补充。而早前传闻的 Envoy 与 WebAssembly 的联手在 1.6 版本更新中也是只字未提。因此,1.6 版本只能说是 1.5 的收尾,没有大惊喜。对于虚拟机的支持,对于一般用户用处也是有限。

最后,让我们一起期待 Istio 的下一次更新吧。

参考

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,830评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,992评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,875评论 0 331
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,837评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,734评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,091评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,550评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,217评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,368评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,298评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,350评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,027评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,623评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,706评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,940评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,349评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,936评论 2 341

推荐阅读更多精彩内容