Istio 1.8 发布——用户至上的选择
作者:宋净超,Tetrate 布道师,云原生社区创始人。
1.8[1] 是 Istio 在 2020 年发布的最后一个版本,按照 Istio 社区在 今年初设定的目标 [2] 继续推进,该版本主要有以下更新:
• 支持使用 Helm 3 进行安装和升级• 正式移除了 Mixer• 新增了 Istio DNS proxy,透明地拦截应用程序的 DNS 查询,实现智能应答• 新增了 WorkloadGroup
以简化对虚拟机的引入
WorkloadGroup
是一个新的 API 对象,旨在与虚拟机等非 Kubernetes 工作负载一起使用,模仿现有的用于 Kubernetes 工作负载的 sidecar 注入和部署规范模型来引导 Istio 代理。
安装与升级
Istio 从 1.5 版本开始弃用了 Helm,使用 istioctl manifest
方式安装,后来又改成了 istioctl install
,现在又重新回归了 Helm,Helm 作为 Kubernetes 环境下最常用的应用安装管理组件,此次回归也是倾听用户声音,优化安装体验的的反应吧,不过 Istio Operator 依然将是 Istio 安装的最终形式,从 1.8 版本开始 Istio 支持使用 Helm[3] 进行 in-place 升级和 canary 升级。
增强 Istio 的易用性
istioctl
命令行工具新增了 bug reporting 功能(istioctl bug-report
),可以用来收集调试信息和获取集群状态。
安装 add-on[4] 的方式变了,在 1.7 中已经不推荐使用 istioctl 来安装,在 1.8 中直接被移除了,这样有利于解决 add-on 落后于上游及难以维护的问题。
正式移除了 Mixer,推荐使用 WebAssembly[5] 通过扩展 Envoy 的方式来扩展 Istio,也推荐大家使用 GetEnvoy Toolkit[6] 来进行 Envoy 的扩展开发。
对虚拟机的支持
在我之前的博客 [7] 中谈到 Istio 1.7 如何支持虚拟机,在 Istio 1.8 中新增了 智能 DNS 代理 [8],它是由 Go 编写的 Istio sidecar 代理,sidecar 上的 Istio agent 将附带一个由 Istiod 动态编程的缓存 DNS 代理。来自应用程序的 DNS 查询会被 pod 或 VM 中的 Istio 代理透明地拦截和服务,该代理会智能地响应 DNS 查询请求,可以实现虚拟机到服务网格的无缝多集群访问。
新增了 WorkloadGroup[9] ,它描述了工作负载实例的集合。提供了一个规范,工作负载实例可以用来引导它们的代理,包括元数据和身份。它只打算与虚拟机等非 Kubernetes 工作负载一起使用,旨在模仿现有的用于 Kubernetes 工作负载的 sidecar 注入和部署规范模型来引导 Istio 代理。
在 Tetrate[10],我们在客户的多集群部署中广泛使用这种机制,以使 sidecar 能够为暴露在网格中所有集群的入口网关的主机解析 DNS,并通过 mTLS 访问。
总结
总而言之,Istio 团队履行了年初的承诺 [11],自 2018 年发布 1.1 版本发布起,保持了固定的发布节奏,每 3 个月发布一个版本,在性能、用户体验上持续优化,以满足 brownfiled 应用与 greenfield 应用在 Istio 上的无缝体验。我们期待 Istio 在 2021 年可以给我们带来更多惊喜。
最后,感谢马若飞 [12] 对本文的审阅。
引用链接
[1]
1.8: https://istio.io/latest/news/releases/1.8.x/announcing-1.8/[2]
今年初设定的目标: https://istio.io/latest/blog/2020/tradewinds-2020/[3]
Helm: https://istio.io/latest/docs/setup/install/helm/[4]
安装 add-on: https://istio.io/latest/blog/2020/addon-rework/[5]
WebAssembly: https://istio.io/latest/blog/2020/wasm-announce/[6]
GetEnvoy Toolkit: https://www.getenvoy.io/reference/getenvoy_extension_toolkit_reference/[7]
之前的博客: https://thenewstack.io/how-to-integrate-virtual-machines-into-istio-service-mesh/[8]
智能 DNS 代理: https://istio.io/latest/blog/2020/dns-proxy/[9]
WorkloadGroup: https://istio.io/latest/docs/reference/config/networking/workload-group/[10]
Tetrate: https://tetrate.io[11]
年初的承诺: https://istio.io/latest/blog/2020/tradewinds-2020/[12]
马若飞: https://github.com/malphi
加入云原生社区 Istio SIG
扫描下面的二维码加入云原生社区 Istio SIG, 与 Istio 专家共同交流。
云原生社区 Meetup
引用链接
[1]
1.8: https://istio.io/latest/news/releases/1.8.x/announcing-1.8/[2]
今年初设定的目标: https://istio.io/latest/blog/2020/tradewinds-2020/[3]
helm: https://istio.io/latest/docs/setup/install/helm/[4]
安装 add-on: https://istio.io/latest/blog/2020/addon-rework/[5]
WebAssembly: https://istio.io/latest/blog/2020/wasm-announce/[6]
GetEnvoy Toolkit: https://www.getenvoy.io/reference/getenvoy_extension_toolkit_reference/[7]
之前的博客: https://thenewstack.io/how-to-integrate-virtual-machines-into-istio-service-mesh/[8]
智能 DNS 代理: https://istio.io/latest/blog/2020/dns-proxy/[9]
WorkloadGroup: https://istio.io/latest/docs/reference/config/networking/workload-group/[10]
Tetrate: https://tetrate.io/[11]
年初的承诺: https://istio.io/latest/blog/2020/tradewinds-2020/[12]
马若飞: https://github.com/malphi
关于云原生社区
云原生社区成立于 2020 年 5 月 12 日,作为中立的云原生终端用户社区,致力于推广云原生技术,构建开发者生态。点击了解我们。
点击下方“阅读原文”查看更多↓↓↓