近日,Istio v1.8 正式发布。Istio 是一个由谷歌、IBM 与 Lyft 共同开发的开源服务网格平台,旨在提供一种统一化的微服务连接、安全保障、管理与监控方式,确保微服务在处理故障时以指定的方式相互连接。

这是 2020 年的第四个也是最后一个版本。Istio 将继续按照 2020 年路线图发布中概述方向前进,以提高可用性、安全性和可靠性,并专注于多集群网格和 VM 工作负载。总的来说,Istio 2021 年也将继续专注于错误修复和完善。

以下是此版本的一些要点:

Istio 安装和升级

为了将网格部署和升级的所有知识汇总起来,v1.8 构建了 IstioOperator API 和两种不同的安装方法,istioctl install 和 Istio operator。某些用户的其他软件可能具有基于 Helm 的部署工作流,因此此版本支持使用 Helm 3 安装 Istio。在安装 Istio v1.8 或更高版本之后,可以进行就地升级和新控制平面的金丝雀部署。目前,Helm 3 的支持仍处于 Alpha 阶段,欢迎大家使用并发表意见。

多集群

很多人非常重视可靠性,运行着多个 Kubernetes 集群。那么在多个集群之间建立网格通常需要大量的手工工作,并且运行方式也有很多选择。该版本编写了新的安装指南,简化了安装跨多集群的网格选项,包括集群是否在同一网络上以及是否需要多个控制平面。

轻松将 VM 添加到网格

v1.7 对 VM Mesh 端点进行了许多安全性改进后,v1.8 将重点放在可用性上。v1.8 简化了安装过程,现在可以使用 istioctl 进行安装。新的智能 DNS 代理功能现在可以从 VM 解析网格服务,而不必指向集群 DNS 服务器。另外它还减少了集群 DNS 流量以及解析服务 IP 所需的查找次数。通过自动注册,我们可以告诉 VM Agent 工作负载类型,并在 WorkloadEntry 加入网格时自动为其创建对象。

安全与 secret

证书现在从 Istiod 发送到网关,不再从 Kubernetes 读取,这减少了暴露的网关权限,有助于“纵深防御”安全态势。此外,这也为提高性能、减少内存占用以及扩展证书源打开了大门。

Istio 自带一个证书授权机构(CA),但许多用户希望连接到现有 CA。之前,我们必须实现 Istio CSR API 并编写第三方集成。Istio v1.8 引入了一种使用 Kubernetes CSR API 的方法,能与使用该 API 的工具集成。Istiod 将充当注册机构(RA)角色,对工作负载进行身份验证和授权,然后创建、批准并监控 CSR 资源的更新。这样,第三方工具(例如 cert-manager)就能使用正确的签名创建具有后端 CA 的签名证书。该功能目前处于试验阶段。

易用性

发生问题时,我们都希望尽可能轻松地解决问题。v1.8 引入了 istioctl bug-report,它能收集调试信息和集群状态,使开发人员或供应商支持团队更容易理解问题所在。

istioctl analyze 现在可以显示对象未正确验证的位置以及集群错误,如果出现错误,会立即返回错误的确切行号。现在我们可以间接引用 Pod,不用再使用 istioctl dashboard envoy $(kubectl get pods -l app=productpage -o jsonpath="{.items[0].metadata.name}"),现在只需要 istioctl dashboard envoy deployment/productpage

弃用

Istio v1.8 弃用了 Mixer 组件。如果依赖任何 Mixer 功能,请检查升级说明,当然可以通过 v1.7 继续使用 Mixer。

在过去的两个版本中,Istio 更改了打包集成插件的方式(例如 Prometheus、Zipkin、Jaeger 和 Kiali)。因为 Istio 捆绑版本不如上游作者提供的版本强大,因此 v1.8 直接提供上游 manifest。使用 Istioctl 安装插件的支持在 v1.7 中弃用,在 v1.8 中正式删除。

原文链接:https://istio.io/latest/news/releases/1.8.x/announcing-1.8/