Istio v1 API 简介
为了反映 Istio 功能的稳定性,我们的网络、安全和遥测 API 在 1.22 版本中升级到了 v1。
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 版本与我们的功能稳定性相匹配,无论这些功能是已经稳定了一段时间,还是在此版本中新指定为稳定的。
尽管目前没有计划停止对之前的 v1beta1
和 v1alpha1
API 版本的支持,但我们鼓励用户通过更新其现有的 YAML 文件手动迁移到使用 v1
API。
遥测 API
v1
遥测 API 是唯一一个在升级过程中发生了更改的 API。以下 v1alpha1
功能未升级到 v1
metrics.reportingInterval
报告间隔允许配置指标报告之间的时间间隔。这目前仅支持 TCP 指标,但我们将来可能会将其用于长时间运行的 HTTP 流。
目前,Istio 缺乏支持此功能需求的使用数据。
accessLogging.filter
如果指定,此过滤器将用于选择要记录的特定请求/连接。
此功能基于 Envoy 中一个相对较新的功能,Istio 需要进一步开发用例和实现,然后再将其升级到
v1
。
tracing.useRequestIdForTraceSampling
此值默认为 true。此请求 ID 的格式特定于 Envoy,如果首先接收用户流量的代理生成的请求 ID 不特定于 Envoy,则 Envoy 将中断跟踪,因为它无法解释请求 ID。通过将此值设置为 false,我们可以阻止 Envoy 根据请求 ID 进行采样。
没有强烈的用例需要通过遥测 API 对其进行配置。
请通过 在 GitHub 上创建问题 分享您对此类字段的任何反馈。
Istio CRD 概述
这是支持的 API 版本的完整列表
类别 | API | 版本 |
---|---|---|
网络 | 目标规则 | v1 、v1beta1 、v1alpha3 |
Istio 网关 | v1 、v1beta1 、v1alpha3 | |
服务入口 | v1 、v1beta1 、v1alpha3 | |
边车 范围 | v1 、v1beta1 、v1alpha3 | |
虚拟服务 | v1 、v1beta1 、v1alpha3 | |
工作负载入口 | v1 、v1beta1 、v1alpha3 | |
工作负载组 | v1 、v1beta1 、v1alpha3 | |
代理配置 | v1beta1 | |
Envoy 过滤器 | v1alpha3 | |
安全 | 授权策略 | v1 、v1beta1 |
对等身份验证 | v1 、v1beta1 | |
请求身份验证 | v1 、v1beta1 | |
遥测 | 遥测 | v1 、v1alpha1 |
扩展 | 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 频道 中发帖或加入我们的每周 工作组会议 来分享您的反馈。