Service Mesh - Istio 1.17 注重生产实践的版本

前言

Istio 1.172023 年的第一个版本,正式支持 Kubernetes 版本 1.231.26。以下是此版本的一些亮点。

金丝雀升级和修订版标记进阶至 Beta

Istio 1.6 版本中引入了对使用修订版按照金丝雀模式升级服务网格的基本支持。使用这种方法,你可以在不影响现有部署的情况下并列运行多个控制平面,并将工作负载从旧控制平面缓慢迁移到新控制平面。在 Istio 1.10 中,引入了修订标记作为对金丝雀升级的改进,以帮助减少操作员为使用修订版而不得不进行的更改次数,从而安全地升级 Istio 控制平面。这是我们的用户在生产中广泛采用和使用的特性。为了此特性进阶到 Beta,包含文档在内的所有集成测试和端到端测试都已完成。

Helm 安装进阶至 Beta

基于 Helm 安装 Istio 首次在 Istio 0.4 中引入,现已进阶至 Beta。这是在生产环境中安装 Istio 时使用最广泛一种方法。在此版本中完成了将此特性进阶至 Beta 的所有要求,包括更新集成测试以使用 Helm Chart 进行安装/升级、更新 Helm 集成测试以及在 values.yaml 中记录高级 Helm Chart 自定义和属性。

升级了对 Kubernetes Gateway API 的支持

Istio 的 Gateway API 实现已进阶至且完全兼容最新版本的 API (0.6.1)。

Istio 双栈支持

Kubernetes 在 1.16 版中添加了双栈模式下的 IPv6 支持,并在 Kubernetes 1.22 版中升级为稳定版。 在 Istio 中启用双栈支持的基础始于 Istio 1.16 版本。 在 Istio 1.17 版本中,添加了以下功能以在 Istio 中启用双重支持:

  • 使用户能够在双栈集群上部署具有单栈或双栈 IP 系列的服务。 例如,用户可以在双栈 Kubernetes 集群上分别部署仅 IPv4、仅 IPv6 和双栈 IP 系列的 3 个服务,使这些服务可以通过 Sidecar 相互访问。
  • 为网关的侦听器添加额外的源地址配置以支持双堆栈模式,以便服务网格外的 IPv4 和 IPV6 客户端可以访问 Gateway。 这仅适用于通过 Gateway 控制器自动部署的 Gateway,Kubernetes 的原生 Gateway 应该已经支持双栈。

这是实验性的特性,目前还在积极开发中

在 Istio 中添加了对过滤器修补的支持

添加了对侦听器过滤器修补的支持,使用户能够在 Istio 的 EnvoyFilter 资源中对 LISTENER_FILTER 执行 ADD、REMOVE、REPLACE、INSERT_FIRST、INSERT_BEFORE、INSERT_AFTER 操作。

在 Istio 添加了对使用 QuickAssist Technology (QAT) PrivateKeyProvider 的支持

添加了对在 SDS 中使用 QuickAssist Technology (QAT) PrivateKeyProvider 的支持,并添加了用于为网关和 Sidecar 选择 QAT 私钥提供程序的相应配置。 这是基于这样一个事实,即 Envoy 添加了对 QAT 的支持, 作为 CryptoMB 之外的另一个私钥提供程序。 有关 QAT 的更多信息,您可以参考此处

对 RequestAuth API 的增强

添加了将 JWT 声明复制到 RequestAuth API 中的 HTTP 请求头的支持。

对 istioctl 命令的增强

为 istioctl 命令添加了一些增强功能,包括添加:

  • revision 标记到 istioctl admin log,以便在 Istiod 之间切换控制
  • istioctl proxy-config ecds,支持从 Envoy 为指定的 Pod 检索分类的扩展配置
  • istioctl proxy-config log,为部署中的所有 Pod 设置代理日志级别
  • –revision 标志到 istioctl analyze,以指定特定的修订版

小结

此次 Istio 的更新,主要是生产实践的支持,值得升级。让我们一起期待下一个版本吧。

延伸阅读

参考


CatchZeng
Written by CatchZeng Follow
AI (Machine Learning) and DevOps enthusiast.