Istio v1 API 简介

为了反映 Istio 功能的稳定性,我们的网络、安全和遥测 API 在 1.22 版本中升级到了 v1。

2024 年 5 月 13 日 | 作者:Whitney Griffith - Microsoft

Istio 提供了 网络安全遥测 API,这些 API 对于确保服务网格内服务的强大安全、无缝连接和有效的可观察性至关重要。这些 API 在全球数千个集群中使用,从而保护和增强关键基础设施。

这些 API 支持的大多数功能在 一段时间内都被认为是稳定的,但 API 版本一直保持在 v1beta1。为了反映这些资源的稳定性、采用率和价值,Istio 社区决定在 Istio 1.22 中将这些 API 升级到 v1

在 Istio 1.22 中,我们很高兴地宣布,我们已经努力将以下 API 升级到 v1

功能稳定性和 API 版本

声明式 API(例如 Kubernetes 和 Istio 使用的 API)将资源的描述与对其进行操作的实现解耦。

Istio 的功能阶段定义 描述了如何将稳定功能(即被认为已准备好用于任何规模的生产环境,并附带正式的弃用策略的功能)与 v1 API 匹配。我们现在正在兑现这一承诺,使我们的 API 版本与我们的功能稳定性相匹配,无论这些功能是已经稳定了一段时间,还是在此版本中新指定为稳定的。

尽管目前没有计划停止对之前的 v1beta1v1alpha1 API 版本的支持,但我们鼓励用户通过更新其现有的 YAML 文件手动迁移到使用 v1 API。

遥测 API

v1 遥测 API 是唯一一个在升级过程中发生了更改的 API。以下 v1alpha1 功能未升级到 v1

请通过 在 GitHub 上创建问题 分享您对此类字段的任何反馈。

Istio CRD 概述

这是支持的 API 版本的完整列表

类别API版本
网络目标规则v1v1beta1v1alpha3
Istio 网关v1v1beta1v1alpha3
服务入口v1v1beta1v1alpha3
边车 范围v1v1beta1v1alpha3
虚拟服务v1v1beta1v1alpha3
工作负载入口v1v1beta1v1alpha3
工作负载组v1v1beta1v1alpha3
代理配置v1beta1
Envoy 过滤器v1alpha3
安全授权策略v1v1beta1
对等身份验证v1v1beta1
请求身份验证v1v1beta1
遥测遥测v1v1alpha1
扩展Wasm 插件v1alpha1

Istio 还可以 使用 Kubernetes 网关 API 进行配置

使用 v1 Istio API

Istio 中的一些 API 仍处于积极开发阶段,并且在版本之间可能会发生变化。例如,Envoy 过滤器、代理配置和 Wasm 插件 API。

此外,由于 CRD 版本控制 的限制,Istio 在所有 API 版本中都维护着完全相同的模式。因此,即使存在 v1 遥测 API,在声明 v1 遥测 API 资源时,仍然可以使用上面提到的三个 v1alpha1 字段

对于规避风险的环境,我们添加了一个稳定验证策略,这是一个 验证准入策略,它可以确保仅使用 v1 API 和字段与 Istio API 互动。

在新环境中,在安装 Istio 时选择稳定验证策略将保证所有将来创建或更新的自定义资源都为 v1 并且仅包含 v1 功能。

如果该策略部署到已存在不符合该策略的自定义资源的现有 Istio 安装中,则唯一允许的操作是删除该资源或删除违规字段的使用。

要使用稳定验证策略安装 Istio

$ helm install istio-base -n istio-system --set experimental.stableValidationPolicy=true

要在使用策略安装 Istio 时设置特定的修订版

$ helm install istio-base -n istio-system --set experimental.stableValidationPolicy=true -set revision=x

此功能与 Kubernetes 1.30 及更高版本兼容。验证是使用 CEL 表达式创建的,用户可以根据其特定需求修改验证。

总结

Istio 项目致力于交付稳定且必不可少的 API 和功能,以确保您的服务网格成功运行。我们非常乐意收到您的反馈,以帮助我们做出正确的决策,因为我们将继续改进相关用例并解决功能的稳定性障碍。请通过创建 问题、在相关的 Istio Slack 频道 中发帖或加入我们的每周 工作组会议 来分享您的反馈。

分享此文章