apiVersion: maistra.io/v2
kind: ServiceMeshControlPlane
metadata:
name: basic
spec:
runtime:
components:
pilot:
container:
env:
ENABLE_NATIVE_SIDECARS: "true"
Red Hat 致力于在我们代码、文档和网络属性中替换有问题的语言。我们从这四个术语开始:master、slave、blacklist 和 whitelist。由于这项工作的巨大性,这些更改将在接下来的几个版本中逐步实施。更多详情,请参见 我们首席技术官 Chris Wright 的信息。
此 Red Hat OpenShift Service Mesh 版本将 Red Hat OpenShift Service Mesh 运算符版本更新为 2.6.4,并包含以下 `ServiceMeshControlPlane` 资源版本更新:2.6.4、2.5.7 和 2.4.13。
此版本解决了常见漏洞和披露 (CVE),并支持 OpenShift Container Platform 4.14 及更高版本。
最新版本的 Red Hat OpenShift Service Mesh 运算符可用于所有受支持的 Service Mesh 版本。Service Mesh 版本使用 `ServiceMeshControlPlane` 指定。
Red Hat 提供的最新版本的 Kiali 运算符可用于所有受支持的 Red Hat OpenShift Service Mesh 版本。Service Mesh 版本通过使用 `ServiceMeshControlPlane` 资源指定。Service Mesh 版本会自动确保 Kiali 的兼容版本。
此 Red Hat OpenShift Service Mesh 版本将 Red Hat OpenShift Service Mesh 运算符版本更新为 2.6.3,并包含以下 `ServiceMeshControlPlane` 资源版本更新:2.6.3、2.5.6 和 2.4.12。
此版本解决了常见漏洞和披露 (CVE),并支持 OpenShift Container Platform 4.14 及更高版本。
Red Hat 提供的最新版本的 Kiali 运算符可用于所有受支持的 Red Hat OpenShift Service Mesh 版本。Service Mesh 版本通过使用 `ServiceMeshControlPlane` 资源指定。Service Mesh 版本会自动确保 Kiali 的兼容版本。
此 Red Hat OpenShift Service Mesh 版本将 Red Hat OpenShift Service Mesh 运算符版本更新为 2.6.2,并包含以下 `ServiceMeshControlPlane` 资源版本更新:2.6.2、2.5.5 和 2.4.11。
此版本解决了常见漏洞和披露 (CVE),包含错误修复,并支持 OpenShift Container Platform 4.14 及更高版本。
Red Hat 提供的最新版本的 Kiali 运算符可用于所有受支持的 Red Hat OpenShift Service Mesh 版本。Service Mesh 版本通过使用 `ServiceMeshControlPlane` 资源指定。Service Mesh 版本会自动确保 Kiali 的兼容版本。
OSSM-8099 此前,在端点处于 draining 阶段时,支持持久会话标签存在问题。现在,有一种方法可以处理有状态 header 会话的 draining 端点。
OSSM-8001 此前,当在 Pod 中将 `runAsUser` 和 `runAsGroup` 设置为相同值时,代理 GID 会错误地设置为与容器的 GID 匹配,从而导致 Istio CNI 应用的 iptables 规则出现流量拦截问题。现在,容器可以为 `runAsUser` 和 `runAsGroup` 使用相同的值,iptables 规则可以正确应用。
OSSM-8074 此前,当 Service Mesh 具有纯数字名称空间(例如 `12345`)时,Kiali 运算符无法安装 Kiali 服务器。现在,纯数字名称空间可以正常工作。
此 Red Hat OpenShift Service Mesh 版本包含在 Red Hat OpenShift Service Mesh 运算符 2.6.2 中,解决了常见漏洞和披露 (CVE),并支持 OpenShift Container Platform 4.14 及更高版本。
此 Red Hat OpenShift Service Mesh 版本包含在 Red Hat OpenShift Service Mesh 运算符 2.6.2 中,解决了常见漏洞和披露 (CVE),并支持 OpenShift Container Platform 4.14 及更高版本。
此 Red Hat OpenShift Service Mesh 版本将 Red Hat OpenShift Service Mesh 运算符版本更新至 2.6.1,并包含以下ServiceMeshControlPlane
资源版本更新:2.6.1、2.5.4 和 2.4.10。此版本解决了常见漏洞和披露 (CVE),包含一个错误修复,并支持 OpenShift Container Platform 4.14 及更高版本。
Red Hat 提供的最新版本的 Kiali 运算符可用于所有受支持的 Red Hat OpenShift Service Mesh 版本。Service Mesh 版本通过使用 `ServiceMeshControlPlane` 资源指定。Service Mesh 版本会自动确保 Kiali 的兼容版本。
OSSM-6766 此前,如果用户想要更新命名空间(例如,启用或禁用注入)或创建任何 Istio 对象(例如,创建流量策略),OpenShift Service Mesh 控制台 (OSSMC) 插件将会失败。现在,如果用户更新命名空间或创建任何 Istio 对象,OpenShift Service Mesh 控制台 (OSSMC) 插件不会失败。
此 Red Hat OpenShift Service Mesh 版本将 Red Hat OpenShift Service Mesh 运算符版本更新至 2.6.0,并包含以下ServiceMeshControlPlane
资源版本更新:2.6.0、2.5.3 和 2.4.9。此版本添加了新功能,解决了常见漏洞和披露 (CVE),并支持 OpenShift Container Platform 4.14 及更高版本。
此版本终止对 Red Hat OpenShift Service Mesh 2.3 版本的维护支持。如果您正在使用 Service Mesh 2.3 版本,则应更新到受支持的版本。
Service Mesh 2.6 基于 Istio 1.20,它提供了新功能和产品增强功能,包括:
在 OpenShift Container Platform 4.16 或更高版本上支持原生 Sidecar。
ServiceMeshControlPlane
资源示例apiVersion: maistra.io/v2
kind: ServiceMeshControlPlane
metadata:
name: basic
spec:
runtime:
components:
pilot:
container:
env:
ENABLE_NATIVE_SIDECARS: "true"
Istio 1.20 中的流量镜像现在支持多个目标。此功能允许将流量镜像到各种端点,从而允许同时观察不同服务版本或配置。
虽然 Red Hat OpenShift Service Mesh 支持许多 Istio 1.20 功能,但应注意以下例外情况:
不支持环境网格 (Ambient mesh)
不支持 Istio 中的 QuickAssist Technology (QAT) PrivateKeyProvider
此版本更新了 Istio 捆绑镜像名称和 Kiali 捆绑镜像名称,以更好地符合 Red Hat 命名约定。
Istio 捆绑镜像名称:openshift-service-mesh/istio-operator-bundle
Kiali 捆绑镜像名称:openshift-service-mesh/kiali-operator-bundle
此版本引入了追踪扩展提供程序 Red Hat OpenShift 分布式追踪平台 (Tempo) 和 Red Hat 版本的 OpenTelemetry 的普遍可用集成。
您可以通过将命名元素和opentelemetry
提供程序追加到ServiceMehControlPlane
资源中的spec.meshConfig.extensionProviders
规范来将追踪数据暴露给 Red Hat OpenShift 分布式追踪平台 (Tempo)。然后,遥测自定义资源会配置 Istio 代理以收集追踪跨度并将它们发送到 OpenTelemetry Collector 端点。
您可以在网格命名空间中创建一个 Red Hat 版本的 OpenTelemetry 实例,并将其配置为将追踪数据发送到追踪平台后端服务。
Red Hat OpenShift 分布式追踪平台 (Tempo) 堆栈在 IBM Z 上不受支持。 |
此版本默认情况下为ServiceMeshControlPlane
资源的新实例禁用了 Red Hat OpenShift 分布式追踪平台 (Jaeger)。
将现有ServiceMeshControlPlane
资源实例更新到 Red Hat OpenShift Service Mesh 2.6 版本时,分布式追踪平台 (Jaeger) 默认情况下保持启用状态。
Red Hat OpenShift Service Mesh 2.6 是最后一个包含对 Red Hat OpenShift 分布式追踪平台 (Jaeger) 和 OpenShift Elasticsearch 运算符支持的版本。分布式追踪平台 (Jaeger) 和 OpenShift Elasticsearch 运算符都将在下一个版本中删除。如果您目前正在使用分布式追踪平台 (Jaeger) 和 OpenShift Elasticsearch 运算符,则需要切换到 Red Hat OpenShift 分布式追踪平台 (Tempo) 和 Red Hat 版本的 OpenTelemetry。
此版本引入了使用 Kubernetes 网关 API 1.0.0 版本与 Red Hat OpenShift Service Mesh 2.6 集成的普遍可用性。此 API 使用仅限于 Red Hat OpenShift Service Mesh。不支持网关 API 自定义资源定义 (CRD)。
如果启用集群范围模式 (spec.mode: ClusterWide
),则网关 API 现在默认启用。即使集群中未安装自定义资源定义 (CRD),也可以启用它。
多租户网格部署的网关 API 仍处于技术预览阶段。 |
请参考下表以确定应与您正在使用的 OpenShift Service Mesh 版本一起安装哪个网关 API 版本:
Service Mesh 版本 | Istio 版本 | 网关 API 版本 | 备注 |
---|---|---|---|
2.6 |
1.20.x |
1.0.0 |
N/A |
2.5.x |
1.18.x |
0.6.2 |
使用实验分支,因为 v0.6.2 中缺少 |
2.4.x |
1.16.x |
0.5.1 |
对于多租户网格部署,必须存在所有网关 API CRD。使用实验分支。 |
您可以通过将PILOT_ENABLE_GATEWAY_API
设置为false
来禁用此功能。
apiVersion: maistra.io/v2
kind: ServiceMeshControlPlane
metadata:
name: basic
spec:
runtime:
components:
pilot:
container:
env:
PILOT_ENABLE_GATEWAY_API: "false"
OSSM-6754 之前,在 OpenShift Container Platform 4.15 中,当用户导航到**服务详情**页面,点击**服务网格**选项卡并刷新页面时,**服务网格详情**页面会卡在服务网格内容信息上,即使活动选项卡是默认的**详情**选项卡。现在,刷新后,用户可以无问题地浏览**服务详情**页面的不同选项卡。
OSSM-2101 之前,Istio Operator 在不再需要时从未删除`istio-cni-node` DaemonSet 和其他 CNI 资源。现在,升级 Operator 后,如果集群中至少安装了一个 SMCP,Operator 将协调此 SMCP,然后删除所有未使用的 CNI 安装(即使是很旧的 CNI 版本,最早可追溯到 v2.0)。
OSSM-6099 在 IPv6 集群上安装 OpenShift Service Mesh 控制台 (OSSMC) 插件失败。
解决方法:在 IPv4 集群上安装 OSSMC 插件。
此 Red Hat OpenShift Service Mesh 版本将 Red Hat OpenShift Service Mesh Operator 版本更新到 2.5.2,并包含以下 `ServiceMeshControlPlane` 资源版本更新:2.5.2、2.4.8 和 2.3.12。此版本解决了常见的漏洞和风险 (CVE),包含错误修复,并支持 OpenShift Container Platform 4.12 及更高版本。
OSSM-6331 之前,`smcp.general.logging.componentLevels`规范接受无效的`LogLevel`值,并且`ServiceMeshControlPlane`资源仍然被创建。现在,如果使用无效值,终端将显示错误消息,并且不会创建控制平面。
OSSM-6290 之前,**Istio 配置**列表页面的**项目**筛选器下拉菜单无法正常工作。即使您从下拉菜单中选择了一个特定项目,也会显示来自所有命名空间的所有`istio config`项。现在,只显示属于筛选器下拉菜单中所选项目的`istio config`项。
OSSM-6298 之前,当您点击 OpenShift Service Mesh 控制台 (OSSMC) 插件中的项目引用时,控制台有时会在打开所需页面之前执行多次重定向。结果,导航回控制台中打开的上一个页面会导致您的 Web 浏览器打开错误的页面。现在,这些重定向不会发生,并且点击 Web 浏览器的**后退**按钮会打开正确的页面。
OSSM-6299 之前,在 OpenShift Container Platform 4.15 中,当您点击流量图中任何节点菜单的**节点图**菜单选项时,不会显示节点图。相反,页面会刷新并显示相同的流量图。现在,点击**节点图**菜单选项会正确显示节点图。
OSSM-6267 之前,在 Red Hat OpenShift Service Mesh 2.5 Grafana 中配置数据源会导致数据查询身份验证错误,用户无法查看 Istio 服务和工作负载仪表板中的数据。现在,将现有的 2.5 SMCP 升级到 2.5.2 或更高版本可以解决 Grafana 错误。
此 Red Hat OpenShift Service Mesh 版本包含在 Red Hat OpenShift Service Mesh Operator 2.5.2 中,解决了常见的漏洞和风险 (CVE),包含错误修复,并支持 OpenShift Container Platform 4.12 及更高版本。
最新版本的 Red Hat OpenShift Service Mesh 运算符可用于所有受支持的 Service Mesh 版本。Service Mesh 版本使用 `ServiceMeshControlPlane` 指定。
此 Red Hat OpenShift Service Mesh 版本包含在 Red Hat OpenShift Service Mesh Operator 2.5.2 中,解决了常见的漏洞和风险 (CVE),包含错误修复,并支持 OpenShift Container Platform 4.12 及更高版本。
最新版本的 Red Hat OpenShift Service Mesh Operator 可与所有受支持的服务网格版本一起使用。服务网格版本使用 `ServiceMeshControlPlane` 资源指定。
这些之前的版本添加了功能和改进。
此 Red Hat OpenShift Service Mesh 版本将 Red Hat OpenShift Service Mesh Operator 版本更新到 2.5.1,并包含以下 `ServiceMeshControlPlane` 资源版本更新:2.5.1、2.4.7 和 2.3.11。
此版本解决了常见的漏洞和风险 (CVE),包含错误修复,并支持 OpenShift Container Platform 4.12 及更高版本。
此 Red Hat OpenShift Service Mesh 版本将 Red Hat OpenShift Service Mesh Operator 版本更新到 2.5.0,并包含以下 `ServiceMeshControlPlane` 资源版本更新:2.5.0、2.4.6 和 2.3.10。
此版本添加了新功能,解决了常见的漏洞和风险 (CVE),包含错误修复,并支持 OpenShift Container Platform 4.12 及更高版本。
此版本终止对 OpenShift Service Mesh 2.2 版本的维护支持。如果您正在使用 OpenShift Service Mesh 2.2 版本,则应更新到受支持的版本。
服务网格 2.5 基于 Istio 1.18,它带来了新功能和产品增强功能。虽然 Red Hat OpenShift Service Mesh 支持许多 Istio 1.18 功能,但应注意以下例外情况
不支持环境网格 (Ambient mesh)
不支持 Istio 中的 QuickAssist Technology (QAT) PrivateKeyProvider
此版本添加了有关从多租户网格迁移到集群范围网格的文档。有关更多信息,请参阅以下文档
“关于迁移到集群范围网格”
“从集群范围网格中排除命名空间”
“定义哪些命名空间在集群范围网格中接收 sidecar 注入”
“从集群范围网格中排除单个 Pod”
此版本提供基于 ARM 的集群上的 Red Hat OpenShift Service Mesh Operator 作为一项普遍可用的功能。
此版本引入了跟踪扩展提供程序的普遍可用集成。您可以通过将命名元素和`zipkin`提供程序附加到`spec.meshConfig.extensionProviders`规范来向 Red Hat OpenShift 分布式跟踪平台 (Tempo) 堆栈公开跟踪数据。然后,遥测自定义资源配置 Istio 代理以收集跟踪跨度并将它们发送到 Tempo 分发器服务端点。
Red Hat OpenShift 分布式追踪平台 (Tempo) 堆栈在 IBM Z 上不受支持。 |
此版本引入了 OpenShift Service Mesh 控制台 (OSSMC) 插件的普遍可用版本。
OSSMC 插件是 OpenShift 控制台的扩展,可提供对服务网格的可见性。安装 OSSMC 插件后,Web 控制台的导航窗格上会出现一个新的服务网格菜单选项,以及增强现有工作负载和服务控制台页面的新服务网格选项卡。
OSSMC 插件的功能与独立的 Kiali 控制台非常相似。OSSMC 插件不会替换 Kiali 控制台,安装 OSSMC 插件后,您仍然可以访问独立的 Kiali 控制台。
Istio OpenShift 路由 (IOR) 的默认设置已更改。从本版本开始,对于新的 ServiceMeshControlPlane
资源实例,默认情况下禁用自动路由。
对于新的 ServiceMeshControlPlane
资源实例,您可以在 ServiceMeshControlPlane
资源的 gateways.openshiftRoute
规范中将 enabled
字段设置为 true
来使用自动路由。
ServiceMeshControlPlane
资源示例apiVersion: maistra.io/v2
kind: ServiceMeshControlPlane
spec:
gateways:
openshiftRoute:
enabled: true
将现有 ServiceMeshControlPlane
资源实例更新到 Red Hat OpenShift Service Mesh 2.5 版本时,自动路由默认情况下保持启用状态。
networking.istio
API 中的 concurrency
参数配置 Istio 代理运行多少个工作线程。
为了保证部署的一致性,Istio 现在根据分配给代理容器的 CPU 限制来配置 concurrency
参数。例如,2500m 的限制会将 concurrency
参数设置为 3
。如果您将 concurrency
参数设置为不同的值,则 Istio 将使用该值来配置代理运行的线程数,而不是使用 CPU 限制。
以前,该参数的默认设置为 2
。
OpenShift Container Platform Gateway API 支持仅为技术预览功能。技术预览功能不受 Red Hat 生产服务级别协议 (SLA) 的支持,并且可能功能不完整。Red Hat 不建议在生产环境中使用它们。这些功能可让您提前访问即将推出的产品功能,从而能够在开发过程中测试功能并提供反馈。 有关 Red Hat 技术预览功能的支持范围的更多信息,请参见 技术预览功能支持范围。 |
现在可以使用新版本的 Gateway API 自定义资源定义 (CRD)。请参考下表确定应与您正在使用的 OpenShift Service Mesh 版本一起安装哪个 Gateway API 版本。
Service Mesh 版本 | Istio 版本 | 网关 API 版本 | 备注 |
---|---|---|---|
2.5.x |
1.18.x |
0.6.2 |
使用实验分支,因为 v0.6.2 中缺少 |
2.4.x |
1.16.x |
0.5.1 |
对于多租户网格部署,必须存在所有网关 API CRD。使用实验分支。 |
此 Red Hat OpenShift Service Mesh 版本包含 Red Hat OpenShift Service Mesh Operator 2.5.1,解决了常见漏洞和披露 (CVE),包含错误修复,并支持 OpenShift Container Platform 4.12 及更高版本。
此 Red Hat OpenShift Service Mesh 版本包含 Red Hat OpenShift Service Mesh Operator 2.5.0,解决了常见漏洞和披露 (CVE),包含错误修复,并支持 OpenShift Container Platform 4.12 及更高版本。
此 Red Hat OpenShift Service Mesh 版本将 Red Hat OpenShift Service Mesh Operator 版本更新为 2.4.5,并包含以下 ServiceMeshControlPlane
资源版本更新:2.4.5、2.3.9 和 2.2.12。
此版本解决了常见漏洞和披露 (CVE),包含错误修复,并支持 OpenShift Container Platform 4.11 及更高版本。
此 Red Hat OpenShift Service Mesh 版本解决了常见漏洞和披露 (CVE),包含错误修复,并支持 OpenShift Container Platform 4.11 及更高版本。
Red Hat OpenShift Service Mesh Operator 现在可在基于 ARM 的集群上作为技术预览功能使用。
已添加 envoyExtAuthzGrpc
字段,用于使用 gRPC API 配置外部授权提供程序。
已解决常见漏洞和披露 (CVE)。
此版本支持 OpenShift Container Platform 4.10 和更新版本。
组件 | 版本 |
---|---|
Istio |
1.16.7 |
Envoy Proxy |
1.24.10 |
Jaeger |
1.42.0 |
Kiali |
1.65.8 |
Red Hat OpenShift Service Mesh Operator 在基于 ARM 的集群上仅为技术预览功能。技术预览功能不受 Red Hat 生产服务级别协议 (SLA) 的支持,并且可能功能不完整。Red Hat 不建议在生产环境中使用它们。这些功能可让您提前访问即将推出的产品功能,从而能够在开发过程中测试功能并提供反馈。 有关 Red Hat 技术预览功能的支持范围的更多信息,请参见 技术预览功能支持范围。 |
此版本使 Red Hat OpenShift Service Mesh Operator 能够在基于 ARM 的集群上作为技术预览功能使用。Istio、Envoy、Prometheus、Kiali 和 Grafana 的镜像可用。Jaeger 的镜像不可用,因此必须禁用 Jaeger 作为 Service Mesh 附加组件。
此 Red Hat OpenShift Service Mesh 版本解决了常见漏洞和披露 (CVE),包含错误修复,并支持 OpenShift Container Platform 4.10 及更高版本。
此 Red Hat OpenShift Service Mesh 版本解决了常见漏洞和披露 (CVE),包含错误修复,并支持 OpenShift Container Platform 4.10 及更高版本。
此 Red Hat OpenShift Service Mesh 版本解决了常见漏洞和披露 (CVE),包含错误修复,并支持 OpenShift Container Platform 4.10 及更高版本。
组件 | 版本 |
---|---|
Istio |
1.16.5 |
Envoy Proxy |
1.24.8 |
Jaeger |
1.42.0 |
Kiali |
1.65.6 |
此增强功能引入了集群范围部署的正式可用版本。集群范围部署包含一个服务网格控制平面,用于监控整个集群的资源。控制平面使用单个查询跨越所有命名空间来监控影响网格配置的每个 Istio 或 Kubernetes 资源。减少控制平面在集群范围部署中执行的查询次数可以提高性能。
此增强功能引入了meshConfig.discoverySelectors
字段的正式可用版本,该字段可用于集群范围部署中来限制服务网格控制平面可以发现的服务。
spec:
meshConfig
discoverySelectors:
- matchLabels:
env: prod
region: us-east1
- matchExpressions:
- key: app
operator: In
values:
- cassandra
- spark
通过此更新,Red Hat OpenShift Service Mesh 与cert-manager
控制器和istio-csr
代理集成。cert-manager
在 Kubernetes 集群中添加证书和证书颁发者作为资源类型,并简化了获取、续订和使用这些证书的过程。cert-manager
为 Istio 提供并轮换中间 CA 证书。与istio-csr
集成使用户能够将 Istio 代理的签名证书请求委托给cert-manager
。ServiceMeshControlPlane
v2.4 接受cert-manager
提供的 CA 证书作为cacerts
密钥。
在 IBM Power®、IBM Z® 和 IBM® LinuxONE 上不支持与 |
此增强功能引入了一种正式可用的方法,可以使用AuthorizationPolicy
资源的action: CUSTOM
字段将 Red Hat OpenShift Service Mesh 与外部授权系统集成。使用envoyExtAuthzHttp
字段将访问控制委托给外部授权系统。
此增强功能引入了 Prometheus 扩展提供程序的正式可用版本。可以通过将extensionProviders
字段的值设置为spec.meshConfig
规范中的prometheus
,将指标公开到 OpenShift Container Platform 监控堆栈或自定义 Prometheus 安装。遥测对象配置 Istio 代理以收集流量指标。Service Mesh 仅支持用于 Prometheus 指标的遥测 API。
spec:
meshConfig:
extensionProviders:
- name: prometheus
prometheus: {}
---
apiVersion: telemetry.istio.io/v1alpha1
kind: Telemetry
metadata:
name: enable-prometheus-metrics
spec:
metrics:
- providers:
- name: prometheus
此增强功能引入了单栈 IPv6 集群的正式可用支持,提供了对更广泛 IP 地址的访问。不支持双栈 IPv4 或 IPv6 集群。
在 IBM Power®、IBM Z® 和 IBM® LinuxONE 上不可用单栈 IPv6 支持。 |
OpenShift Container Platform Gateway API 支持仅为技术预览功能。技术预览功能不受 Red Hat 生产服务级别协议 (SLA) 的支持,并且可能功能不完整。Red Hat 不建议在生产环境中使用它们。这些功能可让您提前访问即将推出的产品功能,从而能够在开发过程中测试功能并提供反馈。 有关 Red Hat 技术预览功能的支持范围的更多信息,请参见 技术预览功能支持范围。 |
此增强功能介绍了 OpenShift Container Platform Gateway API 的更新技术预览版本。默认情况下,OpenShift Container Platform Gateway API 已禁用。
要启用 OpenShift Container Platform Gateway API,请在ServiceMeshControlPlane
资源的techPreview.gatewayAPI
规范中将enabled
字段的值设置为true
。
spec:
techPreview:
gatewayAPI:
enabled: true
以前,使用环境变量来启用 Gateway API。
spec:
runtime:
components:
pilot:
container:
env:
PILOT_ENABLE_GATEWAY_API: "true"
PILOT_ENABLE_GATEWAY_API_STATUS: "true"
PILOT_ENABLE_GATEWAY_API_DEPLOYMENT_CONTROLLER: "true"
此 Red Hat OpenShift Service Mesh 版本包含 Red Hat OpenShift Service Mesh Operator 2.5.1,解决了常见漏洞和披露 (CVE),包含错误修复,并支持 OpenShift Container Platform 4.12 及更高版本。
此 Red Hat OpenShift Service Mesh 版本包含 Red Hat OpenShift Service Mesh Operator 2.5.0,解决了常见漏洞和披露 (CVE),包含错误修复,并支持 OpenShift Container Platform 4.12 及更高版本。
此版本的 Red Hat OpenShift Service Mesh 包含 Red Hat OpenShift Service Mesh Operator 2.4.5,解决了常见漏洞和披露 (CVE),包含错误修复,并支持 OpenShift Container Platform 4.11 和更高版本。
此 Red Hat OpenShift Service Mesh 版本解决了常见漏洞和披露 (CVE),包含错误修复,并支持 OpenShift Container Platform 4.11 及更高版本。
此 Red Hat OpenShift Service Mesh 版本解决了常见漏洞和披露 (CVE),包含错误修复,并支持 OpenShift Container Platform 4.10 及更高版本。
此 Red Hat OpenShift Service Mesh 版本解决了常见漏洞和披露 (CVE),包含错误修复,并支持 OpenShift Container Platform 4.10 及更高版本。
此 Red Hat OpenShift Service Mesh 版本解决了常见漏洞和披露 (CVE),包含错误修复,并支持 OpenShift Container Platform 4.10 及更高版本。
此 Red Hat OpenShift Service Mesh 版本解决了常见漏洞和披露 (CVE),包含错误修复,并支持 OpenShift Container Platform 4.10 及更高版本。
此版本的 Red Hat OpenShift Service Mesh 解决了常见漏洞和披露 (CVE),包含错误修复,并支持 OpenShift Container Platform 4.9 和更高版本。
此版本的 Red Hat OpenShift Service Mesh 解决了常见漏洞和披露 (CVE),包含错误修复,并支持 OpenShift Container Platform 4.9 和更高版本。
此 Red Hat OpenShift Service Mesh 版本引入了新功能,解决了常见漏洞和暴露 (CVE),包含错误修复,并支持 OpenShift Container Platform 4.9 及更高版本。
此 Red Hat OpenShift Service Mesh 版本引入了新功能,解决了常见漏洞和暴露 (CVE),包含错误修复,并支持 OpenShift Container Platform 4.9 及更高版本。
组件 | 版本 |
---|---|
Istio |
1.14.3 |
Envoy Proxy |
1.22.4 |
Jaeger |
1.38 |
Kiali |
1.57.3 |
openshift-operators
命名空间包含一个新的 Istio CNI DaemonSet istio-cni-node-v2-3
和一个新的 ConfigMap
资源 istio-cni-config-v2-3
。
升级到 Service Mesh 控制平面 2.3 时,现有的 istio-cni-node
DaemonSet 不会更改,并且会创建一个新的 istio-cni-node-v2-3
DaemonSet。
此名称更改不会影响之前的版本或与使用先前版本部署的 Service Mesh 控制平面关联的任何 istio-cni-node
CNI DaemonSet。
此版本引入了网关注入的普遍可用支持。网关配置应用于运行在网格边缘的独立 Envoy 代理,而不是与您的服务工作负载一起运行的 sidecar Envoy 代理。这使得能够自定义网关选项。使用网关注入时,您必须在要运行网关代理的命名空间中创建以下资源:Service
、Deployment
、Role
和 RoleBinding
。
Service Mesh 2.3 基于 Istio 1.14,它带来了新功能和产品增强。虽然支持许多 Istio 1.14 功能,但应注意以下例外情况
ProxyConfig API 支持,但 image 字段除外。
Telemetry API 是一个技术预览功能。
SPIRE 运行时不是受支持的功能。
OpenShift Service Mesh 控制台仅为技术预览功能。技术预览功能不受 Red Hat 生产服务级别协议 (SLA) 支持,并且可能功能不完整。Red Hat 不建议在生产环境中使用它们。这些功能提供对即将推出的产品功能的早期访问,使客户能够在开发过程中测试功能并提供反馈。 有关 Red Hat 技术预览功能的支持范围的更多信息,请参见 技术预览功能支持范围。 |
此版本引入了 OpenShift Container Platform Service Mesh 控制台的技术预览版本,该版本将 Kiali 接口直接集成到 OpenShift Web 控制台中。有关更多信息,请参阅 Introducing the OpenShift Service Mesh Console (A Technology Preview)
集群范围部署仅为技术预览功能。技术预览功能不受 Red Hat 生产服务级别协议 (SLA) 支持,并且可能功能不完整。Red Hat 不建议在生产环境中使用它们。这些功能提供对即将推出的产品功能的早期访问,使客户能够在开发过程中测试功能并提供反馈。 有关 Red Hat 技术预览功能的支持范围的更多信息,请参见 技术预览功能支持范围。 |
此版本引入了集群范围部署作为技术预览功能。集群范围部署包含一个服务网格控制平面,用于监控整个集群的资源。控制平面使用单个查询跨所有命名空间监控影响网格配置的每个 Istio 或 Kubernetes 资源种类。相比之下,多租户方法对每个资源种类使用每个命名空间的查询。减少控制平面在集群范围部署中执行的查询次数可以提高性能。
此集群范围部署文档仅适用于使用 SMCP v2.3 部署的控制平面。使用 SMCP v2.3 创建的集群范围部署与使用 SMCP v2.4 创建的集群范围部署不兼容。 |
以下示例 ServiceMeshControlPlane
对象配置了集群范围部署。
要为集群范围部署创建 SMCP,用户必须属于 cluster-admin
ClusterRole。如果 SMCP 配置为集群范围部署,则它必须是集群中唯一的 SMCP。您不能将控制平面模式从多租户更改为集群范围(或从集群范围更改为多租户)。如果已存在多租户控制平面,请将其删除并创建一个新的。
此示例配置了 SMCP 以进行集群范围部署。
apiVersion: maistra.io/v2
kind: ServiceMeshControlPlane
metadata:
name: cluster-wide
namespace: istio-system
spec:
version: v2.3
techPreview:
controlPlaneMode: ClusterScoped (1)
1 | 使 Istiod 能够在集群级别监控资源,而不是监控每个单独的命名空间。 |
此外,SMMR 也必须配置为集群范围部署。此示例配置了 SMMR 以进行集群范围部署。
apiVersion: maistra.io/v1
kind: ServiceMeshMemberRoll
metadata:
name: default
spec:
members:
- '*' (1)
1 | 将所有命名空间添加到网格中,包括您随后创建的任何命名空间。以下命名空间不是网格的一部分:kube、openshift、kube-* 和 openshift-*。 |
此版本的 Red Hat OpenShift Service Mesh 包含 Red Hat OpenShift Service Mesh Operator 2.4.5,解决了常见漏洞和披露 (CVE),包含错误修复,并支持 OpenShift Container Platform 4.11 和更高版本。
此 Red Hat OpenShift Service Mesh 版本解决了常见漏洞和披露 (CVE),包含错误修复,并支持 OpenShift Container Platform 4.11 及更高版本。
此 Red Hat OpenShift Service Mesh 版本解决了常见漏洞和披露 (CVE),包含错误修复,并支持 OpenShift Container Platform 4.10 及更高版本。
此 Red Hat OpenShift Service Mesh 版本解决了常见漏洞和披露 (CVE),包含错误修复,并支持 OpenShift Container Platform 4.10 及更高版本。
此 Red Hat OpenShift Service Mesh 版本解决了常见漏洞和披露 (CVE),包含错误修复,并支持 OpenShift Container Platform 4.10 及更高版本。
此 Red Hat OpenShift Service Mesh 版本解决了常见漏洞和披露 (CVE),包含错误修复,并支持 OpenShift Container Platform 4.10 及更高版本。
此版本的 Red Hat OpenShift Service Mesh 解决了常见漏洞和披露 (CVE),包含错误修复,并支持 OpenShift Container Platform 4.9 和更高版本。
此版本的 Red Hat OpenShift Service Mesh 解决了常见漏洞和披露 (CVE),包含错误修复,并支持 OpenShift Container Platform 4.9 和更高版本。
此版本的 Red Hat OpenShift Service Mesh 解决了常见漏洞和披露 (CVE),包含错误修复,并支持 OpenShift Container Platform 4.9 和更高版本。
此 Red Hat OpenShift Service Mesh 版本解决了常见漏洞和暴露 (CVE),包含错误修复,并支持 OpenShift Container Platform 4.9 及更高版本。
此 Red Hat OpenShift Service Mesh 版本解决了常见漏洞和暴露 (CVE),包含错误修复,并支持 OpenShift Container Platform 4.9 及更高版本。
此 Red Hat OpenShift Service Mesh 版本解决了常见漏洞和暴露 (CVE),包含错误修复,并支持 OpenShift Container Platform 4.9 及更高版本。
此 Red Hat OpenShift Service Mesh 版本添加了新功能和增强功能,并支持 OpenShift Container Platform 4.9 和更高版本。
组件 | 版本 |
---|---|
Istio |
1.12.7 |
Envoy Proxy |
1.20.4 |
Jaeger |
1.34.1 |
Kiali |
1.48.0.16 |
服务网格 2.2 基于 Istio 1.12,它带来了新功能和产品增强功能。虽然许多 Istio 1.12 功能受支持,但应注意以下不受支持的功能
AuthPolicy 预演是一个技术预览功能。
gRPC 无代理服务网格是一个技术预览功能。
遥测 API 是一个技术预览功能。
发现选择器不是受支持的功能。
外部控制平面不是受支持的功能。
网关注入不是受支持的功能。
Kubernetes 网关 API 仅为技术预览功能。技术预览功能不受 Red Hat 生产服务级别协议 (SLA) 的支持,并且可能功能不完整。Red Hat 不建议在生产环境中使用它们。这些功能提供对即将推出的产品功能的早期访问,使客户能够在开发过程中测试功能并提供反馈。 有关 Red Hat 技术预览功能的支持范围的更多信息,请参见 技术预览功能支持范围。 |
Kubernetes 网关 API 是一个默认情况下禁用的技术预览功能。如果 Kubernetes API 部署控制器已禁用,则必须手动部署并将入口网关链接到已创建的网关对象。
如果启用了 Kubernetes API 部署控制器,则在创建网关对象时会自动部署入口网关。
网关 API CRD 默认情况下不会预安装在 OpenShift 集群上。在启用 SMCP 中的网关 API 支持之前,请安装 CRD。
$ kubectl get crd gateways.gateway.networking.k8s.io || { kubectl kustomize "github.com/kubernetes-sigs/gateway-api/config/crd?ref=v0.4.0" | kubectl apply -f -; }
要启用此功能,请为 ServiceMeshControlPlane
中的 Istiod
容器设置以下环境变量
spec:
runtime:
components:
pilot:
container:
env:
PILOT_ENABLE_GATEWAY_API: "true"
PILOT_ENABLE_GATEWAY_API_STATUS: "true"
# and optionally, for the deployment controller
PILOT_ENABLE_GATEWAY_API_DEPLOYMENT_CONTROLLER: "true"
可以使用 SameNamespace
或 All
设置限制网关 API 侦听器上的路由附加。Istio 会忽略在 listeners.allowedRoutes.namespaces
中使用标签选择器,并恢复为默认行为 (SameNamespace
)。
此版本的 Red Hat OpenShift Service Mesh 解决了常见漏洞和披露 (CVE),包含错误修复,并支持 OpenShift Container Platform 4.9 和更高版本。
此版本的 Red Hat OpenShift Service Mesh 解决了常见漏洞和披露 (CVE),包含错误修复,并支持 OpenShift Container Platform 4.9 和更高版本。
此 Red Hat OpenShift Service Mesh 版本解决了常见漏洞和暴露 (CVE),包含错误修复,并支持 OpenShift Container Platform 4.9 及更高版本。
此 Red Hat OpenShift Service Mesh 版本解决了常见漏洞和暴露 (CVE),包含错误修复,并支持 OpenShift Container Platform 4.9 及更高版本。
此 Red Hat OpenShift Service Mesh 版本解决了常见漏洞和披露 (CVE) 并修复了错误。
此 Red Hat OpenShift Service Mesh 版本解决了常见漏洞和披露 (CVE) 并修复了错误。
此 Red Hat OpenShift Service Mesh 版本解决了常见漏洞和披露 (CVE) 并修复了错误。
此 Red Hat OpenShift Service Mesh 版本解决了常见漏洞和披露 (CVE) 并修复了错误。
在此版本中,Red Hat OpenShift 分布式跟踪平台 (Jaeger) 运算符现在默认安装到 openshift-distributed-tracing
命名空间。以前,默认安装位置是 openshift-operator
命名空间。
此 Red Hat OpenShift Service Mesh 版本解决了常见漏洞和披露 (CVE) 并修复了错误。
此版本还增加了禁用网络策略自动创建的功能。
组件 | 版本 |
---|---|
Istio |
1.9.9 |
Envoy Proxy |
1.17.1 |
Jaeger |
1.24.1 |
Kiali |
1.36.7 |
Red Hat OpenShift Service Mesh会在Service Mesh控制平面和应用命名空间中自动创建和管理多个NetworkPolicies
资源。这是为了确保应用和控制平面能够相互通信。
如果您想禁用NetworkPolicies
资源的自动创建和管理(例如,为了执行公司安全策略),您可以这样做。您可以编辑ServiceMeshControlPlane
并将spec.security.manageNetworkPolicy
设置为false
。
禁用 |
在OpenShift Container Platform Web控制台中,点击操作符 → 已安装的操作符。
从“项目”菜单中选择您安装Service Mesh控制平面的项目,例如istio-system
。
点击Red Hat OpenShift Service Mesh Operator。在Istio Service Mesh 控制平面列中,点击您的ServiceMeshControlPlane
的名称,例如basic-install
。
在创建ServiceMeshControlPlane详情页面上,点击YAML
修改您的配置。
将ServiceMeshControlPlane
字段spec.security.manageNetworkPolicy
设置为false
,如下例所示。
apiVersion: maistra.io/v2
kind: ServiceMeshControlPlane
spec:
security:
trust:
manageNetworkPolicy: false
点击保存。
此版本的Red Hat OpenShift Service Mesh增加了对在OpenShift Container Platform 4.6 EUS、4.7、4.8、4.9上运行的Istio 1.9.8、Envoy Proxy 1.17.1、Jaeger 1.24.1和Kiali 1.36.5的支持,以及新的特性和增强功能。
组件 | 版本 |
---|---|
Istio |
1.9.6 |
Envoy Proxy |
1.17.1 |
Jaeger |
1.24.1 |
Kiali |
1.36.5 |
添加了新的自定义资源定义 (CRD) 以支持联合服务网格。服务网格可以在同一集群内或跨不同的OpenShift集群进行联合。这些新的资源包括:
ServiceMeshPeer
- 定义与单独服务网格的联合,包括网关配置、根信任证书配置和状态字段。在一对联合网格中,每个网格将定义自己单独的ServiceMeshPeer
资源。
ExportedServiceMeshSet
- 定义给定ServiceMeshPeer
的哪些服务可供对等网格导入。
ImportedServiceSet
- 定义从对等网格导入的给定ServiceMeshPeer
的哪些服务。这些服务也必须由对等方的ExportedServiceMeshSet
资源提供。
在Red Hat OpenShift Service on AWS (ROSA)、Azure Red Hat OpenShift (ARO)或OpenShift Dedicated (OSD)上的集群之间不支持服务网格联合。
OVN-Kubernetes容器网络接口 (CNI) 之前在Red Hat OpenShift Service Mesh 2.0.1中作为技术预览功能引入,现在在Red Hat OpenShift Service Mesh 2.1和2.0.x中正式可用,可在OpenShift Container Platform 4.7.32、OpenShift Container Platform 4.8.12和OpenShift Container Platform 4.9上使用。
在2.0中作为技术预览首次引入的ServiceMeshExtensions
自定义资源定义 (CRD) 现已正式可用。您可以使用CRD构建自己的插件,但Red Hat不提供对您创建的插件的支持。
Mixer已在Service Mesh 2.1中完全移除。如果启用了Mixer,则将阻止从Service Mesh 2.0.x版本升级到2.1。Mixer插件需要移植到WebAssembly扩展。
由于Mixer现在已正式移除,OpenShift Service Mesh 2.1不支持3scale mixer适配器。在升级到Service Mesh 2.1之前,请移除基于Mixer的3scale适配器和任何其他Mixer插件。然后,使用ServiceMeshExtension
资源手动安装和配置新的3scale WebAssembly适配器以及Service Mesh 2.1+。
3scale 2.11引入了基于WebAssembly
的更新的服务网格集成。
Service Mesh 2.1基于Istio 1.9,它带来了大量的新特性和产品增强功能。虽然大多数Istio 1.9特性都受支持,但应注意以下例外情况:
尚不支持虚拟机集成
尚不支持Kubernetes网关API
尚不支持WebAssembly HTTP过滤器的远程获取和加载
尚不支持使用Kubernetes CSR API的自定义CA集成
用于监控流量的请求分类是技术预览功能
通过授权策略的CUSTOM操作与外部授权系统的集成是技术预览功能
此版本的Red Hat OpenShift Service Mesh解决了常见漏洞和披露 (CVE)、错误修复,并且支持OpenShift Container Platform 4.9或更高版本。
此版本的Red Hat OpenShift Service Mesh解决了常见漏洞和披露 (CVE)、错误修复,并且支持OpenShift Container Platform 4.9或更高版本。
此 Red Hat OpenShift Service Mesh 版本解决了常见漏洞和披露 (CVE) 并修复了错误。
此 Red Hat OpenShift Service Mesh 版本解决了常见漏洞和披露 (CVE) 并修复了错误。
此版本的Red Hat OpenShift Service Mesh解决了常见漏洞和披露 (CVE)。
Red Hat OpenShift Service Mesh 包含一个可远程利用的漏洞,CVE-2021-39156,其中 URI 路径中带有片段(URI 末尾以 # 字符开头的部分)的 HTTP 请求可以绕过 Istio 基于 URI 路径的授权策略。例如,Istio 授权策略拒绝发送到 URI 路径 /user/profile
的请求。在易受攻击的版本中,URI 路径为 /user/profile#section1
的请求会绕过拒绝策略并路由到后端(规范化 URI 为 path /user/profile%23section1
),这可能会导致安全事件。
如果您使用带有 DENY 操作和 operation.paths
的授权策略,或者使用 ALLOW 操作和 operation.notPaths
的授权策略,则会受到此漏洞的影响。
通过缓解措施,在授权和路由之前会删除请求 URI 的片段部分。这可以防止 URI 中带有片段的请求绕过基于不包含片段部分的 URI 的授权策略。
要选择退出缓解措施中的新行为,URI 中的片段部分将被保留。您可以配置您的 ServiceMeshControlPlane
以保留 URI 片段。
禁用新行为将按上述方式规范化您的路径,这被认为是不安全的。在选择保留 URI 片段之前,请确保您已在任何安全策略中对此进行了调整。 |
ServiceMeshControlPlane
修改示例apiVersion: maistra.io/v2
kind: ServiceMeshControlPlane
metadata:
name: basic
spec:
techPreview:
meshConfig:
defaultConfig:
proxyMetadata: HTTP_STRIP_FRAGMENT_FROM_PATH_UNSAFE_IF_DISABLED: "false"
Istio 为主机名本身及其所有匹配端口生成主机名。例如,"httpbin.foo" 主机的虚拟服务或网关会生成与 "httpbin.foo" 和 "httpbin.foo:*" 匹配的配置。但是,精确匹配授权策略仅匹配 hosts
或 notHosts
字段中给出的精确字符串。
如果您有使用精确字符串比较规则来确定 hosts 或 notHosts 的 AuthorizationPolicy
资源,则您的集群会受到影响。
您必须更新您的授权策略 规则 以使用前缀匹配而不是精确匹配。例如,在第一个 AuthorizationPolicy
示例中,将 hosts: ["httpbin.com"]
替换为 hosts: ["httpbin.com:*"]
。
apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
name: httpbin
namespace: foo
spec:
action: DENY
rules:
- from:
- source:
namespaces: ["dev"]
to:
- operation:
hosts: [“httpbin.com”,"httpbin.com:*"]
apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
name: httpbin
namespace: default
spec:
action: DENY
rules:
- to:
- operation:
hosts: ["httpbin.example.com:*"]
此 Red Hat OpenShift Service Mesh 版本解决了常见漏洞和披露 (CVE) 并修复了错误。
Red Hat OpenShift Service Mesh 现在已通过 Red Hat OpenShift Dedicated 和 Microsoft Azure Red Hat OpenShift 提供支持。
此 Red Hat OpenShift Service Mesh 版本解决了常见漏洞和披露 (CVE) 并修复了错误。
此 Red Hat OpenShift Service Mesh 版本解决了常见漏洞和披露 (CVE) 并修复了错误。
此 Red Hat OpenShift Service Mesh 版本解决了常见漏洞和披露 (CVE) 并修复了错误。
必须完成一些手动步骤才能解决 CVE-2021-29492 和 CVE-2021-31920。 |
Istio 包含一个可远程利用的漏洞,其中具有多个斜杠或转义斜杠字符 (%2F
或 %5C
) 的 HTTP 请求路径在使用基于路径的授权规则时可能会绕过 Istio 授权策略。
例如,假设 Istio 集群管理员定义了一个授权 DENY 策略以拒绝路径 /admin
的请求。发送到 URL 路径 //admin
的请求不会被授权策略拒绝。
根据 RFC 3986,具有多个斜杠的路径 //admin
从技术上讲应该被视为与 /admin
不同的路径。但是,一些后端服务选择通过将多个斜杠合并为单个斜杠来规范化 URL 路径。这可能导致绕过授权策略 (//admin
与 /admin
不匹配),用户可以访问后端路径 /admin
上的资源;这将构成安全事件。
如果您有使用 ALLOW action + notPaths
字段或 DENY action + paths
字段模式的授权策略,则您的集群会受到此漏洞的影响。这些模式容易受到意外策略绕过的攻击。
如果您的集群不会受到此漏洞的影响:
您没有授权策略。
您的授权策略未定义 paths
或 notPaths
字段。
您的授权策略使用 ALLOW action + paths
字段或 DENY action + notPaths
字段模式。这些模式只会导致意外拒绝,而不是策略绕过。对于这些情况,升级是可选的。
Red Hat OpenShift Service Mesh 的路径规范化配置位置与 Istio 配置不同。 |
Istio 授权策略可以基于 HTTP 请求中的 URL 路径。路径规范化,也称为 URI 规范化,修改和标准化传入请求的路径,以便可以以标准方式处理规范化的路径。句法上不同的路径在路径规范化后可能等效。
在针对授权策略评估和路由请求之前,Istio 支持对请求路径执行以下规范化方案
选项 | 说明 | 示例 | 备注 |
---|---|---|---|
|
不进行规范化。Envoy 收到的任何内容都将完全按原样转发到任何后端服务。 |
|
此设置易受 CVE-2021-31920 攻击。 |
|
这目前是 Istio **默认**安装中使用的选项。这将对 Envoy 代理应用 |
|
此设置易受 CVE-2021-31920 攻击。 |
|
在 *BASE* 规范化之后合并斜杠。 |
|
更新此设置以缓解 CVE-2021-31920。 |
|
当您默认允许所有流量时,这是最严格的设置。建议使用此设置,但需要注意的是,您必须彻底测试您的授权策略路由。百分比编码 的斜杠和反斜杠字符 ( |
|
更新此设置以缓解 CVE-2021-31920。此设置更安全,但也可能破坏应用程序。在部署到生产环境之前,请测试您的应用程序。 |
规范化算法按以下顺序执行
百分比解码 %2F
、%2f
、%5C
和 %5c
。
Envoy 的 RFC 3986 以及 normalize_path
选项实现的其他规范化。
合并斜杠。
虽然这些规范化选项代表了 HTTP 标准和常见行业实践中的建议,但应用程序可以以任何它选择的方式解释 URL。使用拒绝策略时,请确保您了解应用程序的行为方式。 |
确保 Envoy 将请求路径规范化以匹配您的后端服务的预期,这对于您系统的安全性至关重要。以下示例可作为您配置系统的参考。规范化的 URL 路径(如果选择NONE
,则为原始 URL 路径)将
用于检查授权策略。
转发到后端应用程序。
如果您的应用程序…… | 选择…… |
---|---|
依赖代理进行规范化 |
|
基于 RFC 3986 规范化请求路径,但不合并斜杠。 |
|
|
|
|
|
以与 RFC 3986 不兼容的方式处理请求路径。 |
|
要为 Red Hat OpenShift Service Mesh 配置路径规范化,请在您的 ServiceMeshControlPlane
中指定以下内容。使用配置示例来帮助确定您系统的设置。
spec:
techPreview:
global:
pathNormalization: <option>
在某些环境中,可能需要以不区分大小写的方式比较授权策略中的路径。例如,将 https://myurl/get
和 https://myurl/GeT
视为等效。在这些情况下,您可以使用以下所示的 EnvoyFilter
。此过滤器将更改用于比较的路径和呈现给应用程序的路径。在此示例中,istio-system
是服务网格控制平面项目的名称。
将 EnvoyFilter
保存到文件并运行以下命令
$ oc create -f <myEnvoyFilterFile>
apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
name: ingress-case-insensitive
namespace: istio-system
spec:
configPatches:
- applyTo: HTTP_FILTER
match:
context: GATEWAY
listener:
filterChain:
filter:
name: "envoy.filters.network.http_connection_manager"
subFilter:
name: "envoy.filters.http.router"
patch:
operation: INSERT_BEFORE
value:
name: envoy.lua
typed_config:
"@type": "type.googleapis.com/envoy.extensions.filters.http.lua.v3.Lua"
inlineCode: |
function envoy_on_request(request_handle)
local path = request_handle:headers():get(":path")
request_handle:headers():replace(":path", string.lower(path))
end
此 Red Hat OpenShift Service Mesh 版本解决了常见漏洞和披露 (CVE) 并修复了错误。
此外,此版本具有以下新功能
为must-gather
数据收集工具添加了一个选项,该选项可以从指定的 Service Mesh 控制平面命名空间收集信息。有关更多信息,请参阅 OSSM-351。
提高了具有数百个命名空间的服务网格控制平面的性能
此版本的 Red Hat OpenShift Service Mesh 添加了对 IBM Z® 和 IBM Power® 系统的支持。它还解决了常见漏洞和披露 (CVE) 以及错误修复。
此 Red Hat OpenShift Service Mesh 版本解决了常见漏洞和披露 (CVE) 并修复了错误。
此版本的 Red Hat OpenShift Service Mesh 添加了对 Istio 1.6.5、Jaeger 1.20.0、Kiali 1.24.2 和 3scale Istio Adapter 2.0 以及 OpenShift Container Platform 4.6 的支持。
此外,此版本具有以下新功能
简化了服务网格控制平面的安装、升级和管理。
减少了服务网格控制平面的资源使用和启动时间。
通过减少网络上的控制平面间通信来提高性能。
添加了对 Envoy 的秘密发现服务 (SDS) 的支持。SDS 是一种更安全、更高效的机制,用于将秘密传递到 Envoy sidecar 代理。
无需使用 Kubernetes Secrets,Kubernetes Secrets 具有众所周知的安全风险。
提高了证书轮换期间的性能,因为代理不再需要重启即可识别新证书。
添加了对 Istio 的遥测 v2 架构的支持,该架构是使用 WebAssembly 扩展构建的。这种新架构带来了显著的性能改进。
将 ServiceMeshControlPlane 资源更新为 v2,并采用简化的配置,使其更易于管理服务网格控制平面。
将 WebAssembly 扩展作为 技术预览 功能引入。
此版本中的一些功能目前处于技术预览阶段。这些实验性功能并非用于生产用途。
技术预览功能不受 Red Hat 生产服务级别协议 (SLA) 的支持,并且可能功能不完整。Red Hat 不建议在生产环境中使用它们。这些功能可让客户提前访问即将推出的产品功能,从而能够在开发过程中测试功能并提供反馈。 有关 Red Hat 技术预览功能的支持范围的更多信息,请参见 技术预览功能支持范围。 |
以前版本中提供的一些功能已被弃用或删除。
已弃用的功能仍包含在 OpenShift Container Platform 中,并继续得到支持;但是,它将在此产品的未来版本中删除,不建议用于新部署。
已删除的功能在产品中不再存在。
v2.2 ServiceMeshControlPlane
资源不再受支持。客户应更新其网格部署以使用更高版本的 ServiceMeshControlPlane
资源。
对 Red Hat OpenShift 分布式跟踪平台 (Jaeger) 运算符的支持已弃用。要收集跟踪跨度,请使用 Red Hat OpenShift 分布式跟踪平台 (Tempo) Stack。
对 OpenShift Elasticsearch 运算符的支持已弃用。
Istio 将删除对第一方 JSON Web 令牌 (JWT) 的支持。Istio 将继续支持第三方 JWT。
v2.1 ServiceMeshControlPlane
资源不再受支持。客户应升级其网格部署以使用更高版本的 ServiceMeshControlPlane
资源。
对 Istio OpenShift 路由 (IOR) 的支持已弃用,并将在未来的版本中删除。
对 Grafana 的支持已弃用,并将在未来的版本中删除。
以下在 Red Hat OpenShift Service Mesh 2.3 中已弃用的密码套件的支持已从客户端和服务器端 TLS 协商中使用的默认密码列表中移除。如果应用程序需要访问需要这些密码套件之一的服务,则在代理启动 TLS 连接时将无法连接。
ECDHE-ECDSA-AES128-SHA
ECDHE-RSA-AES128-SHA
AES128-GCM-SHA256
AES128-SHA
ECDHE-ECDSA-AES256-SHA
ECDHE-RSA-AES256-SHA
AES256-GCM-SHA384
AES256-SHA
以下密码套件的支持已被弃用。在将来的版本中,它们将从客户端和服务器端 TLS 协商中使用的默认密码列表中移除。
ECDHE-ECDSA-AES128-SHA
ECDHE-RSA-AES128-SHA
AES128-GCM-SHA256
AES128-SHA
ECDHE-ECDSA-AES256-SHA
ECDHE-RSA-AES256-SHA
AES256-GCM-SHA384
AES256-SHA
在 Red Hat OpenShift Service Mesh 2.3 版本中,已移除在 Red Hat OpenShift Service Mesh 2.2 版本中已弃用的ServiceMeshExtension
API。如果您正在使用ServiceMeshExtension
API,则必须迁移到WasmPlugin
API 以继续使用您的 WebAssembly 扩展。
从 2.2 版本开始,ServiceMeshExtension
API 已弃用,并将 在将来的版本中移除。虽然 2.2 版本仍然支持ServiceMeshExtension
API,但客户应开始迁移到新的WasmPlugin
API。
在 Service Mesh 2.1 中,Mixer 组件已被移除。在 Service Mesh 2.0 生命周期结束之前,将提供错误修复和支持。
如果启用了 Mixer 插件,则从 Service Mesh 2.0.x 版本升级到 2.1 将无法进行。必须将 Mixer 插件移植到 WebAssembly 扩展。
Mixer 组件在 2.0 版本中已弃用,并将 在 2.1 版本中移除。虽然 2.0 版本仍然支持使用 Mixer 实现扩展,但应已将扩展迁移到新的WebAssembly机制。
以下资源类型在 Red Hat OpenShift Service Mesh 2.0 中不再受支持
Policy
(authentication.istio.io/v1alpha1) 不再受支持。根据您的 Policy 资源中的特定配置,您可能需要配置多个资源才能达到相同的效果。
使用RequestAuthentication
(security.istio.io/v1beta1)
使用PeerAuthentication
(security.istio.io/v1beta1)
ServiceMeshPolicy
(maistra.io/v1) 不再受支持。
如上所述,使用RequestAuthentication
或PeerAuthentication
,但放置在 Service Mesh 控制平面命名空间中。
RbacConfig
(rbac.istio.io/v1alpha1) 不再受支持。
由AuthorizationPolicy
(security.istio.io/v1beta1) 替代,它包含RbacConfig
、ServiceRole
和ServiceRoleBinding
的行为。
ServiceMeshRbacConfig
(maistra.io/v1) 不再受支持。
如上所述,使用AuthorizationPolicy
,但放置在 Service Mesh 控制平面命名空间中。
ServiceRole
(rbac.istio.io/v1alpha1) 不再受支持。
ServiceRoleBinding
(rbac.istio.io/v1alpha1) 不再受支持。
在 Kiali 中,login
和LDAP
策略已弃用。未来版本将引入使用 OpenID 提供商进行身份验证。
Red Hat OpenShift Service Mesh 存在以下限制
Red Hat OpenShift Service Mesh 尚未完全支持IPv6。因此,Red Hat OpenShift Service Mesh 不支持双栈集群。
图形布局 - Kiali 图形的布局可能会根据您的应用程序架构和要显示的数据(图形节点数量及其交互)而有所不同。因为创建单个布局以在每种情况下都能很好地呈现是困难的,甚至是不可能的,所以 Kiali 提供了几种不同的布局选择。要选择不同的布局,您可以从“图形设置”菜单中选择不同的布局模式。
第一次从 Kiali 控制台访问相关的服务(例如分布式跟踪平台 (Jaeger) 和 Grafana)时,必须接受证书并使用您的 OpenShift Container Platform 登录凭据重新进行身份验证。这是由于框架在控制台中显示嵌入式页面的方式存在问题。
Bookinfo 示例应用程序无法安装在 IBM Power®、IBM Z® 和 IBM® LinuxONE 上。
WebAssembly 扩展程序在 IBM Power®、IBM Z® 和 IBM® LinuxONE 上不受支持。
LuaJIT 在 IBM Power®、IBM Z® 和 IBM® LinuxONE 上不受支持。
在 IBM Power®、IBM Z® 和 IBM® LinuxONE 上不可用单栈 IPv6 支持。
以下是 Red Hat OpenShift Service Mesh 中的已知问题:*OSSM-5556 当 istio-system 标签与发现选择器不匹配时,网关会被跳过。
+ 解决方法:标记控制平面命名空间以匹配发现选择器,以避免跳过网关配置。
+ .ServiceMeshControlPlane 资源示例
apiVersion: maistra.io/v2
kind: ServiceMeshControlPlane
metadata:
name: basic
namespace: istio-system
spec:
mode: ClusterWide
meshConfig:
discoverySelectors:
- matchLabels:
istio-discovery: enabled
gateways:
ingress:
enabled: true
+ 然后,在命令行运行以下命令
+
oc label namespace istio-system istio-discovery=enabled
OSSM-3890 尝试在多租户网格部署中使用网关 API 会生成类似于以下内容的错误消息
2023-05-02T15:20:42.541034Z error watch error in cluster Kubernetes: failed to list *v1alpha2.TLSRoute: the server could not find the requested resource (get tlsroutes.gateway.networking.k8s.io)
2023-05-02T15:20:42.616450Z info kube controller "gateway.networking.k8s.io/v1alpha2/TCPRoute" is syncing...
要在多租户网格部署中支持网关 API,集群中必须存在所有网关 API 自定义资源定义 (CRD) 文件。
在多租户网格部署中,CRD 扫描被禁用,Istio 无法发现集群中存在哪些 CRD。因此,Istio 尝试监视所有受支持的网关 API CRD,但如果其中一些 CRD 不存在,则会生成错误。
Service Mesh 2.3.1 及更高版本同时支持v1alpha2
和v1beta1
CRD。因此,多租户网格部署要支持网关 API,必须同时存在这两个 CRD 版本。
解决方法:在以下示例中,kubectl get
操作安装v1alpha2
和v1beta1
CRD。请注意,URL 包含附加的experimental
段,并相应地更新您现有的任何脚本
$ kubectl get crd gateways.gateway.networking.k8s.io || { kubectl kustomize "github.com/kubernetes-sigs/gateway-api/config/crd/experimental?ref=v0.5.1" | kubectl apply -f -; }
OSSM-2042 名为default
的 SMCP 部署失败。如果您正在创建 SMCP 对象并将它的版本字段设置为 v2.3,则该对象的名称不能为default
。如果名称为default
,则控制平面将无法部署,并且 OpenShift 将生成一条带有以下消息的Warning
事件
处理组件 mesh-config 时出错:错误: [mesh-config/templates/telemetryv2_1.6.yaml: 发生内部错误:调用 webhook "rev.validation.istio.io" 失败:Post "https://istiod-default.istio-system.svc:443/validate?timeout=10s": x509: 证书对 istiod.istio-system.svc、istiod-remote.istio-system.svc、istio-pilot.istio-system.svc 有效,而不是 istiod-default.istio-system.svc,mesh-config/templates/enable-mesh-permissive.yaml
OSSM-1655 在 SMCP
中启用 mTLS 后,Kiali 仪表盘显示错误。
在 SMCP
中启用 spec.security.controlPlane.mtls
设置后,Kiali 控制台显示以下错误消息:未定义子集
。
OSSM-1505 此问题仅在 OpenShift Container Platform 4.11 上使用 ServiceMeshExtension
资源时发生。在 OpenShift Container Platform 4.11 上使用 ServiceMeshExtension
时,资源永远不会变为就绪状态。如果使用 oc describe ServiceMeshExtension
检查问题,您将看到以下错误:stderr: Error creating mount namespace before pivot: function not implemented
。
解决方法:ServiceMeshExtension
在 Service Mesh 2.2 中已弃用。从 ServiceMeshExtension
迁移到 WasmPlugin
资源。有关更多信息,请参阅从 ServiceMeshExtension
迁移到 WasmPlugin
资源。
OSSM-1396 如果网关资源包含 spec.externalIPs
设置,则在更新 ServiceMeshControlPlane
时,网关不会被重新创建,而是被删除并且永远不会重新创建。
OSSM-1168 当服务网格资源作为单个 YAML 文件创建时,Envoy 代理 sidecar 不会可靠地注入到 Pod 中。当 SMCP、SMMR 和 Deployment 资源分别创建时,部署按预期工作。
OSSM-1115 spec.proxy
API 的 concurrency
字段不会传播到 istio-proxy。使用 ProxyConfig
设置时,concurrency
字段有效。concurrency
字段指定要运行的工作线程数。如果该字段设置为 0
,则可用工作线程数等于 CPU 内核数。如果未设置该字段,则可用工作线程数默认为 2
。
在以下示例中,concurrency
字段设置为 0
。
apiVersion: networking.istio.io/v1beta1
kind: ProxyConfig
metadata:
name: mesh-wide-concurrency
namespace: <istiod-namespace>
spec:
concurrency: 0
OSSM-1052 为服务网格控制平面中的 ingressgateway 配置服务 ExternalIP
时,不会创建服务。SMCP 的模式缺少服务的参数。
解决方法:禁用 SMCP spec 中的网关创建,并完全手动管理网关部署(包括服务、角色和角色绑定)。
OSSM-882 这适用于 Service Mesh 2.1 和更早版本。命名空间位于 accessible_namespace 列表中,但未显示在 Kiali UI 中。默认情况下,Kiali 不会显示任何以“kube”开头的命名空间,因为这些命名空间通常仅供内部使用,并且不是网格的一部分。
例如,如果您创建一个名为“akube-a”的命名空间并将其添加到服务网格成员角色,则 Kiali UI 不会显示该命名空间。对于已定义的排除模式,软件会排除以该模式开头或包含该模式的命名空间。
解决方法:更改 Kiali 自定义资源设置,使其在设置前添加脱字符 (^)。例如
api:
namespaces:
exclude:
- "^istio-operator"
- "^kube-.*"
- "^openshift.*"
- "^ibm.*"
- "^kiali-operator"
MAISTRA-2692 删除 Mixer 后,在 Service Mesh 2.0.x 中定义的自定义指标无法在 2.1 中使用。可以使用 EnvoyFilter
配置自定义指标。红帽公司无法支持 EnvoyFilter
配置,除非在文档中明确说明。这是由于与底层 Envoy API 紧密耦合,这意味着无法维护向后兼容性。
MAISTRA-2648 服务网格扩展目前与在 IBM Z® 上部署的网格不兼容。
MAISTRA-1959 迁移到 2.0 启用 mTLS 时,Prometheus 抓取 (spec.addons.prometheus.scrape
设置为 true
) 不起作用。此外,禁用 mTLS 时,Kiali 会显示多余的图表数据。
可以通过从代理配置中排除端口 15020 来解决此问题,例如:
spec:
proxy:
networking:
trafficControl:
inbound:
excludedPorts:
- 15020
MAISTRA-453 如果您创建一个新项目并立即部署 Pod,则不会发生 sidecar 注入。在创建 Pod 之前,操作员未能添加 maistra.io/member-of
,因此必须删除并重新创建 Pod 才能进行 sidecar 注入。
MAISTRA-158 应用多个引用相同主机名的网关将导致所有网关停止运行。
新的 Kiali 问题应在 OpenShift Service Mesh 项目中创建,并将 |
以下是 Kiali 的已知问题
OSSM-6299 在 OpenShift Container Platform 4.15 中,当您单击流量图表中任何节点菜单的**节点图表**菜单选项时,不会显示节点图表。而是页面会刷新,显示相同的流量图表。目前,此问题没有解决方法。
OSSM-6298 当您单击 OpenShift Service Mesh Console (OSSMC) 插件中的项目引用(例如与特定服务相关的负载链接)时,控制台有时会在打开所需页面之前执行多次重定向。如果您在 Web 浏览器中单击**后退**,则会打开控制台的不同页面,而不是上一页。作为解决方法,请单击两次**后退**以导航到上一页。
OSSM-6290 对于 OpenShift Container Platform 4.15,**Istio 配置**列表页面的**项目**筛选器无法正常工作。即使您从下拉菜单中选择特定项目,也会显示所有 istio
项目。目前,此问题没有解决方法。
KIALI-2206 当您第一次访问 Kiali 控制台并且没有 Kiali 的缓存浏览器数据时,Kiali 服务详细信息页面的“在 Grafana 中查看”链接会重定向到错误的位置。您遇到的唯一情况是您第一次访问 Kiali。
KIALI-507 Kiali 不支持 Internet Explorer 11。这是因为底层框架不支持 Internet Explorer。要访问 Kiali 控制台,请使用 Chrome、Edge、Firefox 或 Safari 浏览器中的两个最新版本之一。
以下问题已在之前的版本中解决
OSSM-6177 以前,当在 ServiceMeshControlPlane
(SMCP) 中启用验证消息时,除非启用了 GatewayAPI
支持,否则 istiod
会持续崩溃。现在,当启用验证消息但未启用 GatewayAPI
支持时,istiod
不会持续崩溃。
OSSM-6163 解决以下问题
之前,服务网格控制平面 (SMCP) v2.5 包含一个不稳定的 Prometheus 镜像,用户无法访问 Prometheus 仪表盘。现在,在服务网格操作符 2.5.1 中,Prometheus 镜像已更新。
之前,在服务网格控制平面 (SMCP) 中,Grafana 数据源无法自动设置基本身份验证密码,用户无法在 Grafana 网格仪表盘中查看来自 Prometheus 的指标。现在,Grafana 数据源密码已在 secureJsonData
字段下配置。指标已在仪表盘中正确显示。
OSSM-6148 之前,当用户点击流量图页面上任何节点菜单中的任何选项时,OpenShift 服务网格控制台 (OSSMC) 插件无响应。现在,插件通过重定向到相应的详细信息页面来响应菜单中选择的选项。
OSSM-6099 之前,OpenShift 服务网格控制台 (OSSMC) 插件在 IPv6 集群中无法正确加载。现在,OSSMC 插件配置已修改,以确保在 IPv6 集群中正确加载。
OSSM-5960 之前,OpenShift 服务网格控制台 (OSSMC) 插件不显示通知消息,例如后端错误或 Istio 验证错误。现在,这些通知已在插件页面顶部正确显示。
OSSM-5959 之前,OpenShift 服务网格控制台 (OSSMC) 插件在概览页面中不显示 TLS 和 Istio 证书信息。现在,此信息已正确显示。
OSSM-5902 之前,当用户点击概览页面上的Istio 配置健康符号时,OpenShift 服务网格控制台 (OSSMC) 插件会重定向到“找不到页面”错误。现在,插件会重定向到正确的Istio 配置详细信息页面。
OSSM-5541 之前,在某些重启条件下,Istio 操作符 Pod 可能会一直等待 leader lease。现在,leader election 实现已增强,以避免此问题。
OSSM-1397 之前,如果您从命名空间中删除了maistra.io/member-of
标签,服务网格操作符不会自动将标签重新应用到命名空间。结果,sidecar 注射在该命名空间中不起作用。
当您更改ServiceMeshMember
对象时,操作符会将标签重新应用到命名空间,这会触发此成员对象的协调。
现在,对命名空间的任何更改也会触发成员对象的协调。
OSSM-3647 之前,在服务网格控制平面 (SMCP) v2.2(Istio 1.12)中,WasmPlugins 仅应用于入站侦听器。从 SMCP v2.3(Istio 1.14)开始,WasmPlugins 默认应用于入站和出站侦听器,这给 3scale WasmPlugin 用户带来了回归。现在,添加了环境变量APPLY_WASM_PLUGINS_TO_INBOUND_ONLY
,允许安全地从 SMCP v2.2 迁移到 v2.3 和 v2.4。
应将以下设置添加到 SMCP 配置
spec:
runtime:
components:
pilot:
container:
env:
APPLY_WASM_PLUGINS_TO_INBOUND_ONLY: "true"
为了确保安全迁移,请执行以下步骤
在 SMCP v2.2 中设置APPLY_WASM_PLUGINS_TO_INBOUND_ONLY
。
升级到 2.4。
在 WasmPlugins 中设置spec.match[].mode: SERVER
。
删除之前添加的环境变量。
OSSM-4851 之前,当runAsGroup
、runAsUser
或fsGroup
参数为nil
时,操作符在网格内作用域的命名空间中部署新 Pod 时发生错误。现在,已添加 YAML 验证以避免nil
值。
OSSM-3771 之前,无法为服务网格控制平面 (SMCP) 中定义的附加入口网关禁用 OpenShift 路由。现在,可以向每个additionalIngress
网关添加routeConfig
块,以便可以为每个网关启用或禁用 OpenShift 路由的创建。
OSSM-4197 之前,如果您部署了 v2.2 或 v2.1 版本的“ServiceMeshControlPlane”资源,则不会创建/etc/cni/multus/net.d/
目录。结果,istio-cni
Pod 无法就绪,并且istio-cni
Pod 日志包含以下消息
$ error Installer exits with open /host/etc/cni/multus/net.d/v2-2-istio-cni.kubeconfig.tmp.841118073: no such file or directory
现在,如果您部署了 v2.2 或 v2.1 版本的“ServiceMeshControlPlane”资源,则会创建/etc/cni/multus/net.d/
目录,并且istio-cni
Pod 能够就绪。
OSSM-3993 之前,Kiali 仅通过标准 HTTPS 端口443
上的代理支持 OpenShift OAuth。现在,Kiali 支持通过非标准 HTTPS 端口的 OpenShift OAuth。要启用该端口,必须在 Kiali CR 中将spec.server.web_port
字段设置为代理的非标准 HTTPS 端口。
OSSM-3936 之前,injection_label_rev
和injection_label_name
属性的值是硬编码的。这阻止了自定义配置在 Kiali 自定义资源定义 (CRD) 中生效。现在,属性值不是硬编码的。您可以在spec.istio_labels
规范中自定义injection_label_rev
和injection_label_name
属性的值。
OSSM-3644 之前,联邦出口网关接收了错误的网络网关端点更新,导致额外的端点条目。现在,联邦出口网关已在服务器端更新,因此它接收正确的网络网关端点。
OSSM-3595 之前,istio-cni
插件有时在 RHEL 上失败,因为 SELinux 不允许实用程序iptables-restore
打开/tmp
目录中的文件。现在,SELinux 通过stdin
输入流而不是通过文件传递iptables-restore
。
OSSM-3586 之前,当 Google Cloud Platform (GCP) 元数据服务器不可用时,Istio 代理启动缓慢。当您升级到 Istio 1.14.6 时,即使元数据服务器不可用,Istio 代理也能按预期在 GCP 上启动。
OSSM-3025 Istiod 有时无法就绪。有时,当网格包含许多成员命名空间时,由于 Istiod 内部的死锁,Istiod Pod 无法就绪。现在已解决死锁问题,Pod 现在可以按预期启动。
OSSM-2493 SMCP 中的默认nodeSelector
和tolerations
未传递给 Kiali。您添加到SMCP.spec.runtime.defaults
中的nodeSelector
和tolerations
现在将传递给 Kiali 资源。
OSSM-2492 SMCP 中的默认容错设置未传递给 Jaeger。您添加到SMCP.spec.runtime.defaults
中的nodeSelector
和tolerations
现在将传递给 Jaeger 资源。
OSSM-2374 如果您删除了其中一个ServiceMeshMember
资源,则Service Mesh Operator会删除ServiceMeshMemberRoll
。虽然删除最后一个ServiceMeshMember
时这是预期行为,但是如果ServiceMeshMemberRoll
除了被删除的那个之外还包含任何其他成员,则Operator不应该删除ServiceMeshMemberRoll
。此问题现已修复,Operator 仅在删除最后一个ServiceMeshMember
资源时才删除ServiceMeshMemberRoll。
OSSM-2373 登录时尝试获取OAuth元数据失败。为了获取集群版本,使用了system:anonymous
帐户。使用集群默认捆绑的ClusterRoles和ClusterRoleBinding,匿名帐户可以正确获取版本。如果system:anonymous
帐户失去了获取集群版本的权限,OpenShift身份验证将无法使用。
此问题已通过使用Kiali SA获取集群版本来修复。这也提高了集群的安全性。
OSSM-2371 尽管Kiali配置为“只读”,但用户仍然可以通过工作负载详细信息的“日志”选项卡的 kebab 菜单更改代理日志级别。此问题已修复,因此当Kiali配置为“只读”时,“设置代理日志级别”下的选项将被禁用。
OSSM-2344 重启Istiod会导致Kiali向CRI-O发送大量的端口转发请求。当Kiali无法连接到Istiod并且同时向istiod发出大量请求时,就会出现此问题。Kiali现在限制了它发送到istiod的请求数量。
OSSM-2335 将鼠标指针拖动到Traces散点图上有时会导致Kiali控制台由于并发后端请求而停止响应。
OSSM-2221 此前,由于默认情况下为命名空间应用了ignore-namespace
标签,因此无法在ServiceMeshControlPlane
命名空间中进行网关注入。
创建v2.4控制平面时,命名空间不再应用ignore-namespace
标签,并且可以进行网关注入。
在以下示例中,oc label
命令从现有部署中的命名空间中删除ignore-namespace
标签
$ oc label namespace istio-system maistra.io/ignore-namespace-
其中
指定了ServiceMeshControlPlane
命名空间的名称。
OSSM-2053 使用Red Hat OpenShift Service Mesh Operator 2.2或2.3,在SMCP协调过程中,SMMR控制器会从SMMR.status.configuredMembers
中删除成员命名空间。这导致成员命名空间中的服务暂时不可用。
使用Red Hat OpenShift Service Mesh Operator 2.2或2.3,SMMR控制器不再从SMMR.status.configuredMembers
中删除命名空间。相反,控制器会将命名空间添加到SMMR.status.pendingMembers
中,以指示它们未更新。在协调过程中,随着每个命名空间与SMCP同步,命名空间将自动从SMMR.status.pendingMembers
中删除。
OSSM-1962 在联邦控制器中使用EndpointSlices
。联邦控制器现在使用EndpointSlices
,这提高了大型部署的可扩展性和性能。PILOT_USE_ENDPOINT_SLICE标志默认启用。禁用此标志将阻止使用联邦部署。
OSSM-1668 一个新的字段spec.security.jwksResolverCA
被添加到版本2.1的SMCP
中,但在2.2.0和2.2.1版本中缺失。从存在此字段的Operator版本升级到缺少此字段的Operator版本时,.spec.security.jwksResolverCA
字段在SMCP
中不可用。
OSSM-1325 istiod pod崩溃并显示以下错误消息:fatal error: concurrent map iteration and map write
。
OSSM-1211 配置用于故障转移的联合服务网格无法按预期工作。
Istiod pilot日志显示以下错误:envoy connection [C289] TLS error: 337047686:SSL routines:tls_process_server_certificate:certificate verify failed
OSSM-1099 Kiali控制台显示消息对不起,出现问题。请尝试刷新或导航到其他页面。
OSSM-1074 在SMCP中定义的Pod注释未注入到Pod中。
OSSM-999 Kiali保留功能无法按预期工作。日历时间在仪表板图表中显示为灰色。
OSSM-797 Kiali Operator pod在安装或更新Operator时生成CreateContainerConfigError
。
OSSM-722 以kube
开头的命名空间在Kiali中隐藏。
OSSM-569 Prometheus istio-proxy
容器没有CPU内存限制。Prometheus istio-proxy
sidecar现在使用spec.proxy.runtime.container
中定义的资源限制。
OSSM-535 支持SMCP中的validationMessages。服务网格控制平面中的ValidationMessages
字段现在可以设置为True
。这会为资源的状态写入日志,这在排查问题时非常有用。
OSSM-449 VirtualService和Service导致错误“仅允许域的唯一值。重复的域条目”。
OSSM-419 具有相似名称的命名空间都将显示在Kiali命名空间列表中,即使这些命名空间可能未在服务网格成员角色中定义。
OSSM-296 向Kiali自定义资源 (CR) 添加健康配置时,它不会复制到Kiali configmap。
OSSM-291 在Kiali控制台的“应用程序”、“服务”和“工作负载”页面上,“从过滤器中删除标签”功能不起作用。
OSSM-289 在Kiali控制台的'istio-ingressgateway'和'jaeger-query'服务的“服务详细信息”页面上,没有显示任何跟踪。跟踪存在于Jaeger中。
OSSM-287 在Kiali控制台中,图服务上没有显示任何跟踪。
OSSM-285 尝试访问Kiali控制台时,收到以下错误消息“尝试获取OAuth元数据失败”。
解决方法:重启Kiali pod。
MAISTRA-2735 Service Mesh Operator在协调SMCP时删除的资源在Red Hat OpenShift Service Mesh 2.1版本中发生了变化。以前,Operator删除了具有以下标签的资源
maistra.io/owner
app.kubernetes.io/version
现在,Operator忽略不包含app.kubernetes.io/managed-by=maistra-istio-operator
标签的资源。如果您创建自己的资源,则不应向其中添加app.kubernetes.io/managed-by=maistra-istio-operator
标签。
MAISTRA-2687 Red Hat OpenShift Service Mesh 2.1联邦网关在使用外部证书时不会发送完整的证书链。Service Mesh联邦出口网关只发送客户端证书。由于联邦入口网关只知道根证书,因此除非您将根证书添加到联邦导入ConfigMap
,否则它无法验证客户端证书。
MAISTRA-2635 替换已弃用的Kubernetes API。为了保持与OpenShift Container Platform 4.8的兼容性,从Red Hat OpenShift Service Mesh 2.0.8开始,apiextensions.k8s.io/v1beta1
API已弃用。
MAISTRA-2631 WASM 功能无法工作,因为 podman 由于缺少 nsenter 二进制文件而失败。Red Hat OpenShift Service Mesh 生成以下错误消息:Error: error configuring CNI network plugin exec: "nsenter": executable file not found in $PATH
。容器镜像现在包含 nsenter,WASM 能够正常工作。
MAISTRA-2534 当 istiod 尝试为 JWT 规则中指定的颁发者获取 JWKS 时,颁发者服务返回 502 错误。这阻止了代理容器就绪并导致部署挂起。社区错误 的修复已包含在 Service Mesh 2.0.7 版本中。
MAISTRA-2411 当 Operator 使用 ServiceMeshControlPlane
中的 spec.gateways.additionaIngress
创建新的 Ingress 网关时,Operator 不会像为默认 istio-ingressgateway 创建一样为附加的 Ingress 网关创建 NetworkPolicy
。这导致新网关路由返回 503 响应。
解决方法:手动在 istio-system
命名空间中创建 NetworkPolicy
。
MAISTRA-2401 CVE-2021-3586 servicemesh-operator:NetworkPolicy 资源错误地指定了 Ingress 资源的端口。为 Red Hat OpenShift Service Mesh 安装的 NetworkPolicy 资源没有正确指定可以访问的端口。这允许从任何 Pod 访问这些资源上的所有端口。以下资源应用的网络策略受影响
Galley
Grafana
Istiod
Jaeger
Kiali
Prometheus
Sidecar injector
MAISTRA-2378 当集群配置为使用带有 ovs-multitenant
的 OpenShift SDN 并且网格包含大量命名空间 (200+) 时,OpenShift Container Platform 网络插件无法快速配置命名空间。Service Mesh 超时导致命名空间不断从服务网格中删除然后重新加入。
MAISTRA-2370 处理 listerInformer 中的墓碑项。更新的缓存代码库在将事件从命名空间缓存转换为聚合缓存时没有处理墓碑项,导致 go 协程出现 panic。
MAISTRA-2117 向 Operator 添加可选的 ConfigMap
挂载。CSV 现在包含一个可选的 ConfigMap
卷挂载,如果存在,则挂载 smcp-templates
ConfigMap
。如果 smcp-templates
ConfigMap
不存在,则挂载的目录为空。创建 ConfigMap
后,目录将填充 ConfigMap
中的条目,并且可以在 SMCP.spec.profiles
中引用。不需要重启 Service Mesh Operator。
使用 2.0 Operator 并修改了 CSV 以挂载 smcp-templates ConfigMap 的客户可以升级到 Red Hat OpenShift Service Mesh 2.1。升级后,您可以继续使用现有的 ConfigMap 及其包含的配置文件,而无需编辑 CSV。以前使用不同名称的 ConfigMap 的客户需要重命名 ConfigMap 或在升级后更新 CSV。
MAISTRA-2010 AuthorizationPolicy 不支持 request.regex.headers
字段。validatingwebhook
拒绝任何包含该字段的 AuthorizationPolicy,即使您禁用了它,Pilot 也会尝试使用相同的代码验证它,并且它不起作用。
MAISTRA-1979 迁移到 2.0 转换 webhook 在将 SMCP.status
从 v2 转换为 v1 时会删除以下重要字段
conditions
components
observedGeneration
annotations
将 Operator 升级到 2.0 可能会破坏使用 maistra.io/v1 版本的资源读取 SMCP 状态的客户端工具。
这还会导致运行 oc get servicemeshcontrolplanes.v1.maistra.io
时 READY 和 STATUS 列为空。
MAISTRA-1947 技术预览 ServiceMeshExtensions 的更新未应用。
解决方法:删除并重新创建 ServiceMeshExtensions
。
MAISTRA-1983 迁移到 2.0 使用现有的无效 ServiceMeshControlPlane
升级到 2.0.0 难以修复。ServiceMeshControlPlane
资源中的无效项导致不可恢复的错误。此修复使错误可恢复。您可以删除无效资源并将其替换为新的资源,或者编辑资源以修复错误。有关编辑资源的更多信息,请参阅 [配置 Red Hat OpenShift Service Mesh 安装]。
MAISTRA-1502 由于 1.0.10 版本中的 CVE 修复,Grafana 中的 **主页板** 菜单无法访问 Istio 仪表板。要访问 Istio 仪表板,请单击导航面板中的 **仪表板** 菜单,然后选择 **管理** 选项卡。
MAISTRA-1399 Red Hat OpenShift Service Mesh 不再阻止您安装不受支持的 CNI 协议。支持的网络配置没有改变。
MAISTRA-1089 迁移到 2.0 在非控制平面命名空间中创建的网关将被自动删除。从 SMCP spec 中删除网关定义后,您需要手动删除这些资源。
MAISTRA-858 描述 与 Istio 1.1.x 相关的已弃用选项和配置 的以下 Envoy 日志消息是预期的
[2019-06-03 07:03:28.943][19][warning][misc] [external/envoy/source/common/protobuf/utility.cc:129] Using deprecated option 'envoy.api.v2.listener.Filter.config'. This configuration will be removed from Envoy soon.
[2019-08-12 22:12:59.001][13][warning][misc] [external/envoy/source/common/protobuf/utility.cc:174] Using deprecated option 'envoy.api.v2.Listener.use_original_dst' from file lds.proto. This configuration will be removed from Envoy soon.
MAISTRA-806 Istio Operator Pod 被驱逐会导致网格和 CNI 未部署。
解决方法:如果在部署控制平面时 istio-operator
pod 被驱逐,请删除被驱逐的 istio-operator
pod。
MAISTRA-681 当 Service Mesh 控制平面具有许多命名空间时,可能会导致性能问题。
MAISTRA-193 为 citadel 启用健康检查时,会显示意外的控制台信息消息。
Bugzilla 1821432 OpenShift Container Platform 自定义资源详细信息页面中的切换控件无法正确更新 CR。OpenShift Container Platform Web 控制台中服务网格控制平面 (SMCP) 概述页面中的 UI 切换控件有时会更新资源中的错误字段。要更新 SMCP,请直接编辑 YAML 内容或从命令行更新资源,而不是单击切换控件。