关于 OpenShift Serverless
OpenShift Serverless 简介
摘要
第 1 章 发行注记 复制链接链接已复制到粘贴板!
如需有关 OpenShift Serverless 生命周期和支持的平台的更多信息,请参阅 OpenShift Operator 生命周期。
发行注记包含有关新的和已弃用的功能、破坏更改以及已知问题的信息。以下发行注记适用于 OpenShift Container Platform 的最新 OpenShift Serverless 版本。
如需了解 OpenShift Serverless 功能概述,请参阅 关于 OpenShift Serverless。
OpenShift Serverless 基于开源的 Knative 项目。
有关最新 Knative 组件发行版本的详情,请参阅 Knative 博客。
1.1. 关于 API 版本 复制链接链接已复制到粘贴板!
API 版本是 OpenShift Serverless 中特定函数和自定义资源的开发状态的重要因素。在没有使用正确 API 版本的集群中创建资源可能会导致部署出现问题。
OpenShift Serverless Operator 会自动升级使用已弃用 API 版本的旧资源以使用最新版本。例如,如果您在集群中创建了使用旧版本的 ApiServerSource API(如 v1beta1 )的资源,OpenShift Serverless Operator 会在可用时自动更新这些资源以使用 API 的 v1 版本,并弃用 v1beta1 版本。
弃用后,可能会在任何即将发布的发行版本中删除旧版本的 API。使用已弃用的 API 版本不会导致资源失败。但是,如果您尝试使用已删除的 API 版本,则会导致资源失败。确保您的清单已更新为使用最新版本以避免出现问题。
1.2. 正式发布(GA)和技术预览(TP)功能 复制链接链接已复制到粘贴板!
正式发布(GA)的功能被完全支持,并适用于生产环境。技术预览功能为实验性功能,不适用于生产环境。有关 TP 功能的更多信息,请参阅红帽客户门户网站中的技术支持范围。
下表提供了有关哪些 OpenShift Serverless 功能是 GA 以及 TP 的信息:
| 功能 | 1.33 | 1.34 | 1.35 |
|---|---|---|---|
| Eventing Transport encryption | - | TP | TP |
| 服务传输加密 | - | TP | TP |
| OpenShift Serverless Logic | GA | GA | GA |
| ARM64 支持 | TP | TP | TP |
| 自定义 Metrics Autoscaler Operator (KEDA) | TP | TP | TP |
| kn event 插件 | TP | TP | TP |
| pipelines-as-code | TP | TP | TP |
|
| TP | TP | TP |
| 使用 S2I 构建器的 go 功能 | TP | TP | GA |
| 在单节点 OpenShift 上安装和使用 Serverless | GA | GA | GA |
| 使用 Service Mesh 在 Serverless 中隔离网络流量 | TP | TP | TP |
|
覆盖功能中的 | GA | GA | GA |
|
| GA | GA | GA |
| Quarkus 功能 | GA | GA | GA |
| Node.js 功能 | GA | GA | GA |
| TypeScript 功能 | GA | GA | GA |
| Python 功能 | TP | TP | TP |
| Service Mesh mTLS | GA | GA | GA |
|
| GA | GA | GA |
| HTTPS 重定向 | GA | GA | GA |
| Kafka 代理 | GA | GA | GA |
| Kafka 接收器 | GA | GA | GA |
| init 容器支持 Knative 服务 | GA | GA | GA |
| Knative 服务的 PVC 支持 | GA | GA | GA |
| 命名空间范围的代理 | TP | TP | TP |
|
| GA | GA | GA |
1.3. 弃用和删除的功能 复制链接链接已复制到粘贴板!
一些在以前发行本中正式发布 (GA) 或技术预览 (TP) 的功能已被弃用或删除。弃用的功能仍然包含在 OpenShift Serverless 中,并且仍然被支持。但是,弃用的功能可能会在以后的发行版本中被删除,且不建议在新的部署中使用。
有关 OpenShift Serverless 中已弃用并删除的主要功能的最新列表,请参考下表:
| 功能 | 1.30 | 1.31 | 1.32 | 1.33 | 1.34 | 1.35 |
|---|---|---|---|---|---|---|
|
Knative client | - | - | - | - | - | 已弃用 |
|
EventTypes | - | - | 已弃用 | 已弃用 | 已弃用 | 已弃用 |
|
| - | - | 删除 | 删除 | 删除 | 删除 |
| 启用 Kourier 时带有 Serverless 的 Red Hat OpenShift Service Mesh | - | - | 已弃用 | 已弃用 | 已弃用 | 已弃用 |
|
| 已弃用 | 已弃用 | 已弃用 | 已弃用 | 已弃用 | 已弃用 |
|
| 已弃用 | 已弃用 | 已弃用 | 已弃用 | 已弃用 | 已弃用 |
|
Serving 和 Eventing | 删除 | 删除 | 删除 | 删除 | 删除 | 删除 |
|
| 删除 | 删除 | 删除 | 删除 | 删除 | 删除 |
|
| 删除 | 删除 | 删除 | 删除 | 删除 | 删除 |
1.4. Red Hat OpenShift Serverless 1.35.1 复制链接链接已复制到粘贴板!
OpenShift Serverless 1.35.1 现已正式发布。此 OpenShift Serverless 地址发行版本确定了 CVE 报告的安全漏洞问题,以增强安全性和可靠性。修复了在 OpenShift Container Platform 中与 OpenShift Serverless 相关的已知问题和已知问题:
1.4.1. 修复的问题 复制链接链接已复制到粘贴板!
-
在以前的版本中,如果未启用
KafkaChannel功能,在安装KnativeKafka后kafka-controller-post-install-1.35作业会失败。这个问题已被解决。post-install 作业现在可以成功完成,即使KafkaChannels被禁用。 在以前的版本中,KnativeEventing 聚合集群角色中缺少
sinks.knative.devAPI 组。因此,如果您是一个非管理员用户,oc get all命令会失败,并显示以下错误消息:jobsinks.sinks.knative.dev is forbidden: User "user" cannot list resource "jobsinks" in API group "sinks.knative.dev" in the namespace "test"
jobsinks.sinks.knative.dev is forbidden: User "user" cannot list resource "jobsinks" in API group "sinks.knative.dev" in the namespace "test"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这个问题已解决。
sinks.knative.devAPI 组现在包括在knative-eventing-namespaced聚合集群角色中。现在,如果您有一个查看、编辑或admin角色,您可以在自己的命名空间中读取和列出 sink。
1.4.2. 已知问题 复制链接链接已复制到粘贴板!
目前,您无法删除集群范围的资源,如 Webhook 配置,在卸载、重新安装或升级 KnativeServing 或 OpenShift Serverless Operator 后可能会保留。这些左侧资源可能会阻止协调过程,并阻止 KnativeServing 正确安装。当出现这个问题时,您可能会看到类似如下的错误:
failed to apply non rbac manifest: Internal error occurred: failed calling webhook \"webhook.serving.knative.dev\": failed to call webhook: Post \"https://webhook.knative-serving.svc:443/?timeout=10s\": no endpoints available for service \"webhook\"
failed to apply non rbac manifest: Internal error occurred: failed calling webhook \"webhook.serving.knative.dev\": failed to call webhook: Post \"https://webhook.knative-serving.svc:443/?timeout=10s\": no endpoints available for service \"webhook\"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 作为临时解决方案,您可以手动删除卡住的 Webhook 配置,以便协调可以继续:
oc delete mutatingwebhookconfiguration webhook.serving.knative.dev
$ oc delete mutatingwebhookconfiguration webhook.serving.knative.devCopy to Clipboard Copied! Toggle word wrap Toggle overflow oc delete validatingwebhookconfiguration config.webhook.serving.knative.dev validation.webhook.serving.knative.dev
$ oc delete validatingwebhookconfiguration config.webhook.serving.knative.dev validation.webhook.serving.knative.devCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.5. Red Hat OpenShift Serverless 1.35 复制链接链接已复制到粘贴板!
OpenShift Serverless 1.35 现已正式发布。OpenShift Container Platform 上的 OpenShift Serverless 的新功能、更新和已知的问题包括在以下备注中:
1.5.1. 新功能 复制链接链接已复制到粘贴板!
- OpenShift Serverless 现在使用 Knative Serving 1.15。
- OpenShift Serverless 现在使用 Knative Eventing 1.15。
- OpenShift Serverless 现在使用 Kourier 1.15。
-
OpenShift Serverless 现在使用 Knative (
kn) CLI 1.15。 - OpenShift Serverless 现在使用 Knative 用于 Apache Kafka 1.15。
-
kn funcCLI 插件现在使用func1.16。 mirror.openshift.com上的 Knative (kn)客户端的当前下载路径已弃用,且不再可用于下一个版本。不会发生自动重定向。如果您的项目或 CI/CD 管道依赖这个 URL 来安装 OpenShift Serverless CLI,您必须相应地更新您的配置。另外,会提供迁移详情,包括新的下载位置。- Knative Eventing Catalog 插件现在包括在 Backstage 插件列表中,您也可以在 Red Hat Developer Hub 上安装它。此功能作为开发者预览提供。
- 使用 S2I 构建器的 Go 功能现在作为 Linux 和 Mac 开发人员正式发布(GA)功能提供,允许他们在这些平台上实施和构建 Go 功能。
-
现在,可以根据传入事件的结构自动发现和注册
EventTypes,简化了EventTypes的整体配置和管理。 - Knative 事件目录现在包括在 OpenShift Developer Console (ODC)中。您可以浏览目录来发现不同的事件类型,以及它们的描述和相关元数据,从而更轻松地了解系统的功能和功能。
- Knative Eventing 现在支持长时间运行的后台作业。此功能将资源密集型或耗时的任务与主要事件处理流分离,从而提高了应用程序响应性和可扩展性。
-
现在,通过 Kubernetes Event-Driven Autoscaling (KEDA)作为技术预览(TP)功能改进了 Knative Kafka 订阅的自动扩展。使用 CMA/KEDA 自动扩展可优化 Kafka 触发器和
KafkaSource对象的资源分配,通过启用 Kafka 消费者资源的动态扩展来提高事件驱动的工作负载的性能。 - OpenShift Serverless Logic 现在与 Prometheus 和 Grafana 集成,以提供增强的监控支持。
-
现在,使用
dev或preview配置集部署的 OpenShift Serverless Logic 工作流会自动配置为为 Prometheus 生成监控指标。 -
现在,通过配置
SonataFlowPlatform自定义资源(CR)中的spec.services.jobService.podTemplate.replicas字段,可以将 Jobs Service 扩展到零。 -
现在,使用
preview和gitops配置集部署的 OpenShift Serverless Logic 工作流会自动配置为将分组的事件发送到 Data Index,从而优化事件流量。 - 现在,提供了工作流定义中更全面的错误列表,而不是仅显示第一个检测到的错误。
-
OpenShift Serverless Logic 现在认证可用于 PostgreSQL 版本
15.9。 - OpenShift Serverless Logic 工作流和 Data Index 之间的事件性能现在改进了事件分组和压缩。
- 现在,当工作流中止时,会调用 compensation 状态。
- OpenShift Serverless Logic 现在支持配置 Knative Eventing 系统来为工作流和支持服务生成和使用事件。
- Broker 和 KafkaChannel (Apache Kafka)的 secret 配置已被统一。
1.5.2. 修复的问题 复制链接链接已复制到粘贴板!
-
在以前的版本中,Horizontal Pod Autoscaler (HPA)会预先缩减 Activator 组件,从而导致对 Knative Service 的长时间运行请求被终止。这个问题现已解决。
terminationGracePeriodSeconds值会根据 Knative 修订版本的max-revision-timeout-seconds配置自动设置。 在以前的版本中,对带有较慢的后端的 Knative Service 的请求可能会超时,因为默认的 Red Hat OpenShift Serverless 路由超时太短。现在,您可以通过在 OpenShift Serverless 的 Operator
Subscription对象中指定环境变量来配置路由 HAProxy 超时,如下所示:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.6. Red Hat OpenShift Serverless 1.34.1 复制链接链接已复制到粘贴板!
OpenShift Serverless 1.34.1 现已正式发布。此 OpenShift Serverless 地址发行版本确定了 CVE 报告的安全漏洞问题。修复了在 OpenShift Container Platform 上与 OpenShift Serverless 相关的问题,请参阅以下备注:
1.6.1. 修复的问题 复制链接链接已复制到粘贴板!
在以前的版本中,因为默认的 OpenShift Route 超时太短,对带有较慢的后端响应的请求可能会失败。这个问题已通过使
haproxy.router.openshift.io/timeout设置针对自动创建的路由进行配置来解决。现在,您可以通过在 OpenShift Serverless Operator
Subscription配置中设置ROUTE_HAPROXY_TIMEOUT环境变量来调整超时,如下所示:Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
在以前的版本中,如果使用
HorizontalPodAutoscaler字段缩减 Activator 组件,则对 Knative Services 的长时间运行请求可能会被预先终止。这个问题已解决。Activator 的terminationGracePeriodSeconds字段现在与为 Knative 修订版本配置的max-revision-timeout-seconds设置自动保持一致。
1.7. Red Hat OpenShift Serverless 1.34 复制链接链接已复制到粘贴板!
OpenShift Serverless 1.34 现已正式发布。OpenShift Container Platform 上的 OpenShift Serverless 的新功能、更新和已知的问题包括在以下备注中:
1.7.1. 新功能 复制链接链接已复制到粘贴板!
- OpenShift Serverless 现在使用 Knative Serving 1.14。
- OpenShift Serverless 现在使用 Knative Eventing 1.14。
- OpenShift Serverless 现在使用 Kourier 1.14。
-
OpenShift Serverless 现在使用 Knative (
kn) CLI 1.14。 - OpenShift Serverless 现在使用 Knative 用于 Apache Kafka 1.14。
-
kn funcCLI 插件现在使用func1.15。 - OpenShift Serverless Logic 现在支持在同一命名空间中为 OpenAPI 的多个配置。
- OpenShift Serverless Logic 的管理控制台现在作为技术预览提供(TP)功能,用于简化开发流程。
- OpenShift Serverless Logic 1.34 引入了一项新功能,它允许工作流通过配置来访问不同的 OpenShift Container Platform 集群。此功能允许用户在工作流中定义 REST 调用,以便与多个集群无缝交互。
-
在 OpenShift Serverless Logic 中,作业服务存活度检查现已改进,以限制检索领导状态所需的时间。引入了一个新的系统属性
kogito.jobs-service.management.leader-check.expiration-in-seconds,允许您配置领导状态检查允许的最大时间。 -
自动
EventType注册是一个 Eventing 功能,现在作为技术预览提供(TP)。它根据代理入口和内存频道上处理的事件自动创建EventTypes对象,改进了使用和创建EventTypes的体验。 - 加密 Serving 现在作为技术预览提供(TP)功能。
- 现在,支持启动探测,有助于缩短冷启动时间,从而加快应用程序启动速度并提高性能。这些探测对于具有缓慢启动进程的容器特别有用。
- OpenShift Serverless Serving 传输加密功能允许使用 TLS 通过安全和加密的 HTTPS 连接传输数据。现在,它作为一个技术预览(TP)功能提供。
- 使用 S2I 构建器的 Go 功能现在作为 Linux 和 Mac 开发人员的一个技术预览(TP)功能提供,允许他们在这些平台上实施和构建 Go 功能。
-
通过对 Knative Serving 的多容器支持,您可以使用单个 Knative 服务来部署多容器 pod。它还支持多个容器
的就绪度和存活度探测值。 -
现在,通过 KEDA (Kubernetes Event-Driven Autoscaling)作为技术预览(TP)改进了 Knative Kafka 触发的自动扩展。使用 CMA/KEDA 自动扩展通过优化 Kafka 触发器和
KafkaSource对象的资源分配来进一步增强性能,从而确保事件驱动的工作负载中的可扩展性。 - Knative Eventing 现在支持传输加密(Eventing TLS)中的数据作为技术预览(TP)功能。您可以将 Knative Eventing 组件配置为公开 HTTPS 地址,并将用户提供的 CA 信任捆绑包添加到客户端。
1.7.2. 修复的问题 复制链接链接已复制到粘贴板!
-
在以前的版本中,即使
无法加载,KafkaSource 对象也会错误地处于KafkaSource.spec.net.tls.keyReady状态。这个问题已解决。现在,在创建 KafkaBroker,KafkaChannel,KafkaSource, KafkaSource , 或带有不支持的 TLS 证书的KafkaSink对象时,会报告一个错误,以确保正确处理和通知配置问题。 -
Eventing 控制器错误地重新排队错误的对象类型(
Namespace),从而导致 "resource not found" 日志错误。这个问题现已解决,控制器现在可以处理对象重新排队,确保更准确的日志记录和资源管理。
1.8. Red Hat OpenShift Serverless 1.33.3 复制链接链接已复制到粘贴板!
OpenShift Serverless 1.33.3 现已正式发布,解决了识别的常见漏洞和暴露(CVE),以增强安全性和可靠性。
1.9. Red Hat OpenShift Serverless 1.33.2 复制链接链接已复制到粘贴板!
OpenShift Serverless 1.33.2 现已正式发布。修复了在 OpenShift Container Platform 上与 OpenShift Serverless 相关的问题,请参阅以下备注:
1.9.1. 修复的问题 复制链接链接已复制到粘贴板!
-
在以前的版本中,在用户命名空间中创建 Knative 安装资源,如
KnativeServing或KnativeEventing,会在 OpenShift Serverless Operator 中创建无限协调循环。这个问题已通过重新引入准入 Webhook 来解决,它可防止在knative-serving或knative-eventing以外的任何命名空间中创建 Knative 安装资源。 - 在以前的版本中,在一定时间段内删除安装后批处理作业,保留特权服务帐户 unbound。这会导致合规系统标记问题。这个问题已通过保留已完成的作业来解决,确保服务帐户保持绑定。
1.10. Red Hat OpenShift Serverless 1.33 复制链接链接已复制到粘贴板!
OpenShift Serverless 1.33 现已正式发布。OpenShift Container Platform 上的 OpenShift Serverless 的新功能、更新和已知的问题包括在以下备注中:
1.10.1. 新功能 复制链接链接已复制到粘贴板!
- OpenShift Serverless 现在使用 Knative Serving 1.12。
- OpenShift Serverless 现在使用 Knative Eventing 1.12。
- OpenShift Serverless 现在使用 Kourier 1.12。
-
OpenShift Serverless 现在使用 Knative (
kn) CLI 1.12。 - OpenShift Serverless 现在使用 Knative 用于 Apache Kafka 1.12。
-
kn funcCLI 插件现在使用func1.14。 OpenShift Serverless Logic 现已正式发布(GA)。此发行版本包括 OpenShift Serverless Logic 的概述;有关创建、运行和部署工作流的说明;以及安装和卸载 OpenShift Serverless Logic Operator 的指南。此外,还包括配置 OpenAPI 服务和端点的步骤,以及用于对服务进行故障排除的技巧。如需更多信息,请参阅 OpenShift Serverless 日志概述。
您还可以参考其他文档。如需了解更多详细信息 ,请参阅 Serverless Logic 文档。
- ARM64 上的 OpenShift Serverless 现在作为技术预览提供。
-
NamespacedKafka注解现已弃用。在没有 data plane 隔离的情况下使用标准 Kafka 代理。 -
在启用自动
EventType自动创建时,您现在可以轻松发现集群中可用的事件。此功能作为开发者预览提供。 - 现在,您可以在 OpenShift Developer 控制台的 Developer 控制台的 Observe 选项卡中直接探索 Knative Eventing 监控仪表板。
-
现在,您可以使用 Custom Metrics Autoscaler Operator 为 Apache Kafka 源自动扩展 Knative Eventing 源,由
KafkaSource对象定义。此功能作为技术预览功能提供,为 Knative Eventing 中的基于 Kafka 的事件源提供增强的可扩展性和效率。 - 现在,在使用 Kafka 实现创建 Knative Broker 时,您可以自定义内部 Kafka 主题属性。这提高了效率,简化管理。
- 新的触发器过滤器功能现在作为技术预览提供。这些过滤器默认是启用的,允许用户指定一组过滤器表达式,每个表达式评估为每个事件评估为 true 或 false。
1.10.2. 已知问题 复制链接链接已复制到粘贴板!
- 由于不同的挂载点权限,集群构建上的直接上传不适用于 IBM zSystems (s390x)和 IBM Power (ppc64le)。
使用 Podman 版本 4.6 构建和部署功能会失败,并显示
无效的 pull policy "1"错误。要临时解决这个问题,请使用 Podman 版本 4.5。
1.11. Red Hat OpenShift Serverless 1.32.2 复制链接链接已复制到粘贴板!
OpenShift Serverless 1.32.2 现已正式发布。修复了在 OpenShift Container Platform 上与 OpenShift Serverless 相关的问题,请参阅以下备注:
1.11.1. 修复的问题 复制链接链接已复制到粘贴板!
- 在以前的版本中,在一定时间段内删除安装后批处理作业,保留特权服务帐户 unbound。这会导致合规系统标记问题。这个问题已通过保留已完成的作业来解决,确保服务帐户保持绑定。
1.12. Red Hat OpenShift Serverless 1.32 复制链接链接已复制到粘贴板!
OpenShift Serverless 1.32 现已正式发布。OpenShift Container Platform 上的 OpenShift Serverless 的新功能、更新和已知的问题包括在以下备注中。
1.12.1. 新功能 复制链接链接已复制到粘贴板!
- OpenShift Serverless 现在使用 Knative Serving 1.11。
- OpenShift Serverless 现在使用 Knative Eventing 1.11。
- OpenShift Serverless 现在使用 Kourier 1.11。
-
OpenShift Serverless 现在使用 Knative (
kn) CLI 1.11。 - OpenShift Serverless 现在使用 Knative 用于 Apache Kafka 1.11。
-
kn funcCLI 插件现在使用func1.13。 Serverless Logic (作为技术预览提供)功能已更新。
有关使用说明 ,请参阅 Serverless Logic 文档。
-
您可以为用户容器和
queue-proxy容器配置 OpenShift Serverless 功能就绪度和存活度探测设置。 -
OpenShift Serverless 功能现在支持从
1.10till1.14(latest)中的 OpenShift Pipelines 版本。旧版本 OpenShift Pipelines 不再与 OpenShift Serverless 功能兼容。 - 目前,在 OpenShift Data Foundation 存储上的 IBM zSystems (s390x)和 IBM Power (ppc64le)上支持使用 Pipelines 作为代码的 on-cluster 功能构建。
-
现在,您可以使用
func subscribe命令订阅一组事件。这会将您的功能链接到您的过滤器定义的CloudEvent对象,并启用自动响应。 -
内部流量的 Knative Serving TLS 加密功能现已弃用。它是一个技术预览功能。带有
internal-encryption配置标志的功能不再可用,它将在以后的版本中被新的配置标志替代。 -
OpenShift Serverless Operator 端默认启用 secret 过滤。默认向
net-istio和net-kourier控制器 pod 添加环境变量ENABLE_SECRET_INFORMER_FILTERING_BY_CERT_UID=true。 -
knative-serving命名空间中的domain-mapping和domain-mapping-webhook部署功能现已被删除。现在,它们与 Serving Webhook 和 Serving Controller 集成。 -
如果您在
KnativeServing自定义资源(CR)中设置spec.config.domain字段,则默认外部域将不再自动填充knative-serving命名空间中的config-domain配置映射。现在,您必须手动配置config-domain配置映射,以确保准确的域设置。 -
现在,您可以将 gRPC 健康探测用于
net-kourier部署。Kourier Controller 现在为就绪度和存活度使用标准 Kubernetes gRPC 健康探测,替换之前 exec 和自定义命令的使用。timeoutSeconds值已从 100 毫秒调整为 1 秒,以确保更可靠的探测响应。 - 新的触发器过滤器功能现在作为技术预览提供。新的触发器过滤器现在默认启用。它允许用户指定一组过滤器表达式,其中每个表达式都会为每个事件评估为 true 或 false。
- Knative Eventing 现在支持以开发者预览的形式传输加密(Eventing TLS)中的数据。您可以将 Knative Eventing 组件配置为公开 HTTPS 地址,并将用户提供的 CA 信任捆绑包添加到客户端。
- OpenShift Serverless 现在支持系统组件的自定义 OpenShift CA 捆绑包注入。如需更多信息,请参阅 配置自定义 PKI。
- 现在,您可以使用自定义 Metrics Autoscaler Operator 为 Apache Kafka 源自动扩展 Knative Eventing 源。此功能作为开发人员预览提供,为 Knative Eventing 中的基于 Kafka 的事件源提供了增强的可扩展性和效率。
- 现在,您可以在 OpenShift Developer 控制台的 Developer 视图的 Observe 选项卡中直接探索 Knative Eventing 监控仪表板。
-
OpenShift Serverless 1.32 中已弃用对 Knative 提供的 EventTypes
v1beta1的支持。在 OpenShift Serverless 1.32 中,Knative CLI 使用 EventTypev1beta2API 来促进新的参考模型。在以前的版本中,knCLI 不向后兼容 EventType APIv1beta1,仅限于kn eventtypes子子命令组。因此,建议您使用匹配的kn版本获得最佳用户体验。
1.12.2. 修复的问题 复制链接链接已复制到粘贴板!
-
现在,
3scale-kourier-gateways从500m增加到1s默认 CPU 限制。创建 500 多个 Knative Service 实例时,可能会导致3scale-kourier-gatewayspod 中的就绪度和存活度探测失败,因为 CPU 资源耗尽。这个调整旨在减少这样的故障,并确保在负载过重时可以平稳操作。
1.12.3. 已知问题 复制链接链接已复制到粘贴板!
- 由于不同的挂载点权限,集群构建上的直接上传不适用于 IBM zSystems (s390x)和 IBM Power (ppc64le)。
使用 Podman 版本 4.6 构建和部署功能会失败,并显示
无效的 pull policy "1"错误。要临时解决这个问题,请使用 Podman 版本 4.5。
1.13. Red Hat OpenShift Serverless 1.31 复制链接链接已复制到粘贴板!
OpenShift Serverless 1.31 现已正式发布。OpenShift Container Platform 上的 OpenShift Serverless 的新功能、更新和已知的问题包括在以下备注中。
1.13.1. 新功能 复制链接链接已复制到粘贴板!
- OpenShift Serverless 现在使用 Knative Serving 1.10。
- OpenShift Serverless 现在使用 Knative Eventing 1.10。
- OpenShift Serverless 现在使用 Kourier 1.10。
-
OpenShift Serverless 现在使用 Knative (
kn) CLI 1.10。 - OpenShift Serverless 现在使用 Knative for Apache Kafka 1.10。
-
kn funcCLI 插件现在使用func1.11。 - 带有 Service Mesh 的 OpenShift Serverless 多租户现在作为技术预览提供(TP)功能。
Serverless Logic (作为技术预览提供)功能已更新。
有关使用说明 ,请参阅 Serverless Logic 文档。
- OpenShift Serverless 现在可以在单节点 OpenShift 上安装和使用。
-
现在,您可以为现有
PersistentVolume对象配置持久性卷声明(PVC)以用于 Serverless 功能。 -
当为 Ingress 指定 Kourier 并使用
DomainMapping时,OpenShift Route 的 TLS 被设置为 passthrough,并且 Kourier 网关处理 TLS。从 Serverless 1.31 开始,可以在 Kourier 网关一侧指定启用的密码套件。 当启用了 Kourier 时,将 Red Hat OpenShift Service Mesh 与 Serverless 集成现已弃用。在 Service Mesh 集成中使用
net-istio而不是net-kourier。详情请参阅"将 Red Hat OpenShift Service Mesh 与 Serverless 集成"部分。
为
3scale-kourier-gateway部署添加了PodDistruptionBudget和HorizontalPodAutoscaler对象。-
PodDistruptionBudget用于定义部署中 pod 的最低可用性要求。 -
HorizontalPodAutoscaler用于根据需求或自定义指标自动扩展部署中的 pod 数量。
-
- 现在,您可以更改 Knative 代理和 Apache Kafka 频道使用的 Apache Kafka 主题名称模式。
-
DomainMappingv1alpha1自定义资源定义(CRD)现已弃用。使用v1beta1CRD 替代。 -
NamespacedKafka注解(技术预览)功能(TP)功能现已弃用,现在使用没有 data plane 隔离的标准 Kafka 代理。
1.13.2. 修复的问题 复制链接链接已复制到粘贴板!
在以前的版本中,当使用完整的 Red Hat OpenShift Service Mesh 集成和
STRICTpeer 身份验证部署 Knative Eventing 时,PingSource适配器指标不可用。这个问题已被解决,
PingSource适配器指标现在可以使用不同的作业和服务标签值来收集。以上值为pingsource-mt-adapter,新值为pingsource-mt-adapter-sm-service。
1.14. Red Hat OpenShift Serverless 1.30.2 复制链接链接已复制到粘贴板!
OpenShift Serverless 1.30.2 现已正式发布。OpenShift Container Platform 上的 OpenShift Serverless 的新功能、更新和已知的问题包括在以下备注中。
此 OpenShift Serverless 发行版本解决了 CVE 报告的安全漏洞问题(CVE),包含程序错误修复,并受 OpenShift Container Platform 4.11 及更新的版本的支持。值得注意的是,这个更新通过禁用 Serving、Eventing Webhook 和 RBAC 代理容器上的 HTTP/2 传输来解决 CVE-2023-44487 - HTTP/2 快速流重置的问题。
1.15. Red Hat OpenShift Serverless 1.30.1 复制链接链接已复制到粘贴板!
OpenShift Serverless 1.30.1 现已正式发布。OpenShift Container Platform 上的 OpenShift Serverless 的新功能、更新和已知的问题包括在以下备注中。
此 OpenShift Serverless 发行版本解决了 CVE 报告的安全漏洞问题(CVE),包含程序错误修复,并受 OpenShift Container Platform 4.11 及更新的版本的支持。
1.16. Red Hat OpenShift Serverless 1.30 复制链接链接已复制到粘贴板!
OpenShift Serverless 1.30 现已正式发布。OpenShift Container Platform 上的 OpenShift Serverless 的新功能、更新和已知的问题包括:
OpenShift Container Platform 4.13 基于 Red Hat Enterprise Linux (RHEL) 9.2。RHEL 9.2 尚未提交联邦信息处理标准(FIPS)验证。虽然红帽无法提交到特定的时间线,但我们预期为 RHEL 9.0 和 RHEL 9.2 模块获取 FIPS 验证,即使 RHEL 9.x 的次版本也是如此。有关更新的信息,请参阅 合规性活动和政府标准知识库文章。
1.16.1. 新功能 复制链接链接已复制到粘贴板!
- OpenShift Serverless 现在使用 Knative Serving 1.9。
- OpenShift Serverless 现在使用 Knative Eventing 1.9。
- OpenShift Serverless 现在使用 Kourier 1.9。
-
OpenShift Serverless 现在使用 Knative (
kn) CLI 1.9。 - OpenShift Serverless 现在使用 Knative for Apache Kafka 1.9。
-
kn funcCLI 插件现在使用func1.10.1。 - OpenShift Serverless 现在在 HyperShift 托管集群中运行。
- OpenShift Serverless 现在在单节点 OpenShift 中运行。
- OpenShift Serverless 的开发人员体验现在可以通过 OpenShift Toolkit 获取,它是 Visual Studio Code (VSCode)的 OpenShift IDE 扩展。扩展可以从 VSCode Extension Tab 和 VSCode Marketplace 安装。请参阅 Visual Studio Code OpenShift Toolkit 扩展的 Marketplace 页面。
- OpenShift Serverless 功能现在支持 Red Hat OpenShift Pipelines 版本 1.10 和 1.11。旧版本的 Red Hat OpenShift Pipelines 不再与 OpenShift Serverless 功能兼容。
Serverless Logic 现在作为技术预览提供(TP)功能。
详情请查看 Serverless Logic 文档。
从 OpenShift Serverless 1.30.0 开始,使用 s2i 构建器在 IBM zSystems 上支持以下运行时环境:
- NodeJS
- Python
- TypeScript
- Quarkus
Eventing 与 Red Hat OpenShift Service Mesh 集成现在作为技术预览提供(TP)功能。
集成包括以下内容:
-
PingSource -
ApiServerSource - Apache Kafka 的 Knative 源
- Apache Kafka 的 Knative Broker
- Apache Kafka 的 Knative Sink
-
ContainerSource -
SinkBinding -
InMemoryChannel -
KafkaChannel - 基于频道的 Knative Broker
-
- OpenShift Serverless 功能的 pipelines-as-code 现在作为技术预览提供(TP)。
-
现在,您可以为
net-kourier配置每秒的 burst 和 query 值(QPS)。 OpenShift Serverless Functions 用户现在可以为单个 Quarkus 功能覆盖
func.yaml文件中的readiness和liveness探测值。有关 Quarkus、typetype 和 Node.js 功能的指导,请参阅"功能开发参考指南"。
从 OpenShift Serverless 1.30.0 开始,Kourier 控制器和网关清单默认具有以下限制和请求:
requests:
- CPU: 200m
- 内存:200Mi
limits:
- cpu: 500m
内存:500Mi
请参阅 OpenShift Serverless 文档中的"覆盖 Knative Serving 系统部署配置"部分。
-
NamespacedKafka注解(技术预览)功能(TP)功能现已弃用,现在使用没有 data plane 隔离的标准 Kafka 代理。
1.16.2. 修复的问题 复制链接链接已复制到粘贴板!
在以前的版本中,
3scale-kourier-gatewaypod 每天发送数千个net-kourier-controllerDNS 查询。正在为每个NXDOMAIN回复发送新查询。这会继续,直到生成了正确的 DNS 查询。查询现在默认具有
net-kourier-controller.knative-serving-ingress.svc.<cluster domain> 的完全限定域名(FQDN),从而解决了这个问题。
1.16.3. 已知问题 复制链接链接已复制到粘贴板!
使用 Podman 版本 4.6 构建和部署功能会失败,并显示
无效的 pull policy "1"错误。要临时解决这个问题,请使用 Podman 版本 4.5。
- IBM zSystems 和 IBM Power 不支持 on-cluster 功能构建,包括使用 Pipelines-as-code。
- IBM zSystem 和 IBM Power 不支持 Buildpack 构建器。
1.17. Red Hat OpenShift Serverless 1.29.1 复制链接链接已复制到粘贴板!
OpenShift Serverless 1.29.1 现已正式发布。OpenShift Container Platform 上的 OpenShift Serverless 的新功能、更新和已知的问题包括在以下备注中。
此 OpenShift Serverless 发行版本解决了 CVE 报告的安全漏洞问题(CVE),包含程序错误修复,并受 OpenShift Container Platform 4.10 及更新的版本的支持。
1.17.1. 修复的问题 复制链接链接已复制到粘贴板!
-
在以前的版本中,
net-kourier-controller有时因为存活度探测错误而无法启动。该问题已解决。
1.18. Red Hat OpenShift Serverless 1.29 复制链接链接已复制到粘贴板!
OpenShift Serverless 1.29 现已正式发布。OpenShift Container Platform 上的 OpenShift Serverless 的新功能、更新和已知的问题包括在以下备注中。
OpenShift Container Platform 4.13 基于 Red Hat Enterprise Linux (RHEL) 9.2。RHEL 9.2 尚未提交联邦信息处理标准(FIPS)验证。虽然红帽无法提交到特定的时间线,但我们预期为 RHEL 9.0 和 RHEL 9.2 模块获取 FIPS 验证,即使 RHEL 9.x 的次版本也是如此。有关更新的信息,请参阅 合规性活动和政府标准知识库文章。
1.18.1. 新功能 复制链接链接已复制到粘贴板!
- OpenShift Serverless 现在使用 Knative Serving 1.8。
- OpenShift Serverless 现在使用 Knative Eventing 1.8。
- OpenShift Serverless 现在使用 Kourier 1.8。
-
OpenShift Serverless 现在使用 Knative (
kn) CLI 1.8。 - OpenShift Serverless 现在使用 Knative 用于 Apache Kafka 1.8。
-
kn funcCLI 插件现在使用func1.10。 从 OpenShift Serverless 1.29 开始,提供了不同的产品版本,如下所示:
-
最新版本可通过
stable频道获得。 早于最新的版本可以通过基于版本的频道获得。
要使用这些,请将订阅对象 YAML 文件中的 channel 参数从
stable更新到对应的基于版本的频道,如stable-1.29。此更改允许您只接收针对最新版本的更新,也适用于维护阶段的版本。
另外,您可以锁定 Knative (
kn) CLI 的版本。详情请参阅"安装 Knative CLI"部分。
-
最新版本可通过
- 现在,您可以使用 OpenShift Container Platform Pipelines 通过开发人员控制台创建 OpenShift Serverless 功能。
- 对 Knative Serving 的多容器支持现已正式发布(GA)。此功能允许您使用单个 Knative 服务来部署多容器 pod。
-
OpenShift Serverless 功能现在可以为单独的 Node.js 和 TypeScript 功能覆盖
func.yaml文件中的readiness和liveness探测值。 - 现在,当 GitHub 存储库中的源代码发生变化时,您可以将功能配置为自动部署到集群中。这允许更加无缝的 CI/CD 集成。
-
Eventing 与 Service Mesh 集成现在作为开发人员预览功能提供。集成包括:
PingSource、ApiServerSource、Apache Kafka 的 Knative Source、Apache Kafka 的 Knative Broker、Apache Kafka 的 Knative Sink、ContainerSource和SinkBinding。 - 此发行版本包括 OpenShift Serverless Logic 的升级开发人员预览。
-
Knative Operator Serving 和 Eventings CRD 的 API 版本
v1alpha1已被删除。您需要使用v1beta1版本。这不会影响现有安装,因为在升级 Serverless Operator 时 CRD 会被自动更新。
1.18.2. 已知问题 复制链接链接已复制到粘贴板!
- 当更新 DomainMapping 中指定的 secret 时,只更新 secret 不会触发协调循环。您需要重命名 secret 或删除 Knative Ingress 资源,以触发协调循环。
- OpenShift Serverless Operator 覆盖 Webhook Horizontal Pod Autoscaler (HPA)设置。因此,对于更高的工作负载,它无法扩展。要临时解决这个问题,请手动设置与您的工作负载对应的初始副本值。
-
在 Red Hat OpenShift Serverless 1.27 删除前创建的
KafkaSource资源会卡住。要临时解决这个问题,在开始删除KafkaSource后,从资源中删除终结器。 -
net-kourier-controller可能会因为存活度探测错误而无法启动。您可以使用知识库解决方案临时解决这个问题。
1.19. Red Hat OpenShift Serverless 1.28 复制链接链接已复制到粘贴板!
OpenShift Serverless 1.28 现已正式发布。OpenShift Container Platform 上的 OpenShift Serverless 的新功能、更新和已知的问题包括在以下备注中。
OpenShift Container Platform 4.13 基于 Red Hat Enterprise Linux (RHEL) 9.2。RHEL 9.2 尚未提交联邦信息处理标准(FIPS)验证。虽然红帽无法提交到特定的时间线,但我们预期为 RHEL 9.0 和 RHEL 9.2 模块获取 FIPS 验证,即使 RHEL 9.x 的次版本也是如此。有关更新的信息,请参阅 合规性活动和政府标准知识库文章。
1.19.1. 新功能 复制链接链接已复制到粘贴板!
- OpenShift Serverless 现在使用 Knative Serving 1.7。
- OpenShift Serverless 现在使用 Knative Eventing 1.7。
- OpenShift Serverless 现在使用 Kourier 1.7。
-
OpenShift Serverless 现在使用 Knative (
kn) CLI 1.7。 - OpenShift Serverless 现在为 Apache Kafka 1.7 使用 Knative 代理实现。
-
kn funcCLI 插件现在使用func1.9.1 版本。 - Node.js 和 TypeScript 运行时现在正式发布 (GA)。
- OpenShift Serverless 功能的 Python 运行时现在作为技术预览提供。
- Knative Serving 的多容器支持现在作为技术预览提供。此功能允许您使用单个 Knative 服务来部署多容器 pod。
在 OpenShift Serverless 1.29 或更高版本中,Knative Eventing 的以下组件将从两个 pod 缩减为一个:
-
imc-controller -
imc-dispatcher -
mt-broker-controller -
mt-broker-filter -
mt-broker-ingress
-
Serving CR 的
serverless.openshift.io/enable-secret-informer-filtering注解现已弃用。该注解仅适用于 Istio,不适用于 Kourier。在 OpenShift Serverless 1.28 中,OpenShift Serverless Operator 允许注入
net-istio和net-kourier的环境变量ENABLE_SECRET_INFORMER_FILTERING_BY_CERT_UID。如果启用 secret 过滤,则所有 secret 都需要使用
networking.internal.knative.dev/certificate-uid: "<id>"。否则,Knative Serving 不会检测到它们,这会导致失败。您必须标记新的和现有的 secret。在以下 OpenShift Serverless 版本中,secret 过滤将默认启用。要防止失败,请预先标记您的 secret。
1.19.2. 已知问题 复制链接链接已复制到粘贴板!
目前,IBM Power、IBM zSystems 和 IBM® LinuxONE 上的 OpenShift Serverless 功能不支持 Python 的运行时。
Node.js、typetype 和 Quarkus 功能在这些架构中被支持。
在 Windows 平台上,因为
app.sh文件权限,无法使用 Source-to-Image 构建器在本地构建、运行或部署 Python 功能。要临时解决这个问题,对 Linux 使用 Windows 子系统。
-
在 Red Hat OpenShift Serverless 1.27 删除前创建的
KafkaSource资源会卡住。要临时解决这个问题,在开始删除KafkaSource后,从资源中删除终结器。
1.20. Red Hat OpenShift Serverless 1.27 复制链接链接已复制到粘贴板!
OpenShift Serverless 1.27 现已正式发布。OpenShift Container Platform 上的 OpenShift Serverless 的新功能、更新和已知的问题包括在以下备注中。
OpenShift Serverless 1.26 是 OpenShift Container Platform 4.12 完全支持的最早版本。OpenShift Serverless 1.25 和更早的版本不会在 OpenShift Container Platform 4.12 上部署。
因此,在将 OpenShift Container Platform 升级到 4.12 之前,首先将 OpenShift Serverless 升级到 1.26 或 1.27。
1.20.1. 新功能 复制链接链接已复制到粘贴板!
- OpenShift Serverless 现在使用 Knative Serving 1.6。
- OpenShift Serverless 现在使用 Knative Eventing 1.6。
- OpenShift Serverless 现在使用 Kourier 1.6。
-
OpenShift Serverless 现在使用 Knative (
kn) CLI 1.6。 - OpenShift Serverless 现在使用 Knative Kafka 1.6。
-
kn funcCLI 插件现在使用func1.8.1。 - 命名空间范围的代理现在作为技术预览提供。例如,此类代理可用于实施基于角色的访问控制 (RBAC) 策略。
-
KafkaSink现在使用CloudEvent二进制内容模式。二进制内容模式比结构化模式更高效,因为它使用其正文中的标头而不是CloudEvent。例如,对于 HTTP 协议,它使用 HTTP 标头。 - 现在,您可以使用 OpenShift Container Platform 4.10 及更新的版本中的 OpenShift Route 通过 HTTP/2 协议使用 gRPC 框架。这提高了客户端和服务器间的通信效率和速度。
-
Knative Operator Serving 和 Eventings CRD 的 API 版本
v1alpha1在 1.27 中弃用。它将在以后的版本中删除。红帽强烈建议使用v1beta1版本。这不会影响现有安装,因为在升级 Serverless Operator 时 CRD 会被自动更新。 - 现在默认启用交付超时功能。它允许您指定每个发送的 HTTP 请求的超时时间。这个功能仍是一个技术预览。
1.20.2. 修复的问题 复制链接链接已复制到粘贴板!
-
在以前的版本中,Knative 服务有时没有处于
Ready状态,报告等待负载均衡器就绪。这个问题已被解决。
1.20.3. 已知问题 复制链接链接已复制到粘贴板!
-
当集群中存在太多 secret 时,将 OpenShift Serverless 与 Red Hat OpenShift Service Mesh 集成会导致
net-kourierpod 在启动时耗尽内存。 命名空间范围的代理可能会在用户命名空间中保留
ClusterRoleBindings,即使删除了命名空间范围的代理。如果发生这种情况,删除用户命名空间中名为
rbac-proxy-reviews-prom-rb-knative-kafka-broker-data-plane-{{.Namespace}}的ClusterRoleBinding。
1.21. Red Hat OpenShift Serverless 1.26 复制链接链接已复制到粘贴板!
OpenShift Serverless 1.26 现已正式发布。OpenShift Container Platform 上的 OpenShift Serverless 的新功能、更新和已知的问题包括在以下备注中。
1.21.1. 新功能 复制链接链接已复制到粘贴板!
- 带有 Quarkus 的 OpenShift Serverless 功能现在是 GA。
- OpenShift Serverless 现在使用 Knative Serving 1.5。
- OpenShift Serverless 现在使用 Knative Eventing 1.5。
- OpenShift Serverless 现在使用 Kourier 1.5。
-
OpenShift Serverless 现在使用 Knative (
kn) CLI 1.5。 - OpenShift Serverless 现在使用 Knative Kafka 1.5。
- OpenShift Serverless 现在使用 Knative Operator 1.3。
-
kn funcCLI 插件现在使用func1.8.1。 - 持久性卷声明 (PVC) 现在为 GA。PVC 为 Knative 服务提供持久性数据存储。
新的触发器过滤器功能现在作为技术预览提供。它允许用户指定一组过滤器表达式,其中每个表达式都会为每个事件评估为 true 或 false。
要启用新的触发器过滤器,请在 operator 配置映射中
KnativeEventing类型的部分中添加new-trigger-filters: enabled条目:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Knative Operator 1.3 为
operator.knative.dev添加了 API 的更新v1beta1版本。要从
KnativeServing和KnativeEventing自定义资源配置映射中的v1alpha1更新至v1beta1,请编辑apiVersion键:KnativeServing自定义资源配置映射示例apiVersion: operator.knative.dev/v1beta1 kind: KnativeServing ...
apiVersion: operator.knative.dev/v1beta1 kind: KnativeServing ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow KnativeEventing自定义资源配置映射示例apiVersion: operator.knative.dev/v1beta1 kind: KnativeEventing ...
apiVersion: operator.knative.dev/v1beta1 kind: KnativeEventing ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.21.2. 修复的问题 复制链接链接已复制到粘贴板!
- 在以前的版本中,Kafka 代理、Kafka 源和 Kafka sink 禁用联邦信息处理标准 (FIPS) 模式。这个问题已被解决,现在 FIPS 模式可用。
1.22. Red Hat OpenShift Serverless 1.25.0 复制链接链接已复制到粘贴板!
OpenShift Serverless 1.25.0 现已正式发布。OpenShift Container Platform 上的 OpenShift Serverless 的新功能、更新和已知的问题包括在以下备注中。
1.22.1. 新功能 复制链接链接已复制到粘贴板!
- OpenShift Serverless 现在使用 Knative Serving 1.4。
- OpenShift Serverless 现在使用 Knative Eventing 1.4。
- OpenShift Serverless 现在使用 Kourier 1.4。
-
OpenShift Serverless 现在使用 Knative (
kn) CLI 1.4。 - OpenShift Serverless 现在使用 Knative Kafka 1.4。
-
kn funcCLI 插件现在使用func1.7.0。 - 用于创建和部署功能的集成开发环境(IDE)插件现在可用于 Visual Studio Code 和 IntelliJ。
Knative Kafka 代理现在是 GA。Knative Kafka 代理是 Knative 代理 API 的高性能实现,直接以 Apache Kafka 为目标。
建议您不要使用 MT-Channel-Broker,而是使用 Knative Kafka 代理。
-
Knative Kafka sink 现在为 GA。
KafkaSink使用CloudEvent,并将其发送到 Apache Kafka 主题。事件可以在结构化或二进制内容模式中指定。 - 为内部流量启用 TLS 现在作为技术预览提供。
1.22.2. 修复的问题 复制链接链接已复制到粘贴板!
- 在以前的版本中,如果在存活度探测失败后重启容器,Knative Serving 会出现一个就绪度探测失败。这个问题已被解决。
1.22.3. 已知问题 复制链接链接已复制到粘贴板!
- Kafka 代理、Kafka 源和 Kafka sink 禁用 Federal Information Processing Standards (FIPS) 模式。
-
SinkBinding对象不支持服务的自定义修订名称。 Knative Serving Controller pod 添加了一个新的 informer 来监视集群中的 secret。informer 在缓存中包含 secret,这会增加控制器 pod 的内存消耗。
如果 pod 内存不足,您可以通过增加部署的内存限值来解决此问题。
1.23. Red Hat OpenShift Serverless 1.24.0 复制链接链接已复制到粘贴板!
OpenShift Serverless 1.24.0 现已正式发布。OpenShift Container Platform 上的 OpenShift Serverless 的新功能、更新和已知的问题包括在以下备注中。
1.23.1. 新功能 复制链接链接已复制到粘贴板!
- OpenShift Serverless 现在使用 Knative Serving 1.3。
- OpenShift Serverless 现在使用 Knative Eventing 1.3。
- OpenShift Serverless 现在使用 Kourier 1.3。
-
OpenShift Serverless 现在使用 Knative
knCLI 1.3。 - OpenShift Serverless 现在使用 Knative Kafka 1.3。
-
kn funcCLI 插件现在使用func0.24。 - 现在,提供了对 Knative 服务的 init 容器支持 (GA)。
- OpenShift Serverless 逻辑现在作为技术预览提供。它启用了定义声明工作流模型来管理无服务器应用程序。
- 对于 OpenShift Container Platform,您现在可以在 OpenShift Serverless 中使用成本管理服务。
1.23.2. 修复的问题 复制链接链接已复制到粘贴板!
当集群中存在太多 secret 时,将 OpenShift Serverless 与 Red Hat OpenShift Service Mesh 集成会导致
net-istio-controllerpod 在启动时耗尽内存。现在,可以启用 secret 过滤,这会导致
net-istio-controller只考虑带有networking.internal.knative.dev/certificate-uid标签的 secret,从而减少所需的内存量。- OpenShift Serverless 功能技术预览现在默认使用 Cloud Native Buildpacks 构建容器镜像。
1.23.3. 已知问题 复制链接链接已复制到粘贴板!
- Kafka 代理、Kafka 源和 Kafka sink 禁用 Federal Information Processing Standards (FIPS) 模式。
在 OpenShift Serverless 1.23 中,删除了 KafkaBindings 和
kafka-bindingWebhook 的支持。但是,现有kafkabindings.webhook.sources.knative.dev MutatingWebhookConfiguration可能保留,指向kafka-source-webhook服务,该服务不再存在。对于集群上 KafkaBindings 的某些规格,
kafkabindings.webhook.kafka.sources.knative.dev MutatingWebhookConfiguration可能会被配置,将任何创建和更新事件传递给各种资源,如 Deployment、Knative Services 或 Jobs,然后 Webhook 会失败。要临时解决这个问题,请在升级到 OpenShift Serverless 1.23 后从集群中删除
kafkabindings.webhook.sources.knative.dev MutatingWebhookConfiguration:oc delete mutatingwebhookconfiguration kafkabindings.webhook.kafka.sources.knative.dev
$ oc delete mutatingwebhookconfiguration kafkabindings.webhook.kafka.sources.knative.devCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.24. Red Hat OpenShift Serverless 1.23.0 复制链接链接已复制到粘贴板!
OpenShift Serverless 1.23.0 现已发布。OpenShift Container Platform 上的 OpenShift Serverless 的新功能、更新和已知的问题包括在以下备注中。
1.24.1. 新功能 复制链接链接已复制到粘贴板!
- OpenShift Serverless 现在使用 Knative Serving 1.2。
- OpenShift Serverless 现在使用 Knative Eventing 1.2。
- OpenShift Serverless 现在使用 Kourier 1.2。
-
OpenShift Serverless 现在使用 Knative (
kn) CLI 1.2。 - OpenShift Serverless 现在使用 Knative Kafka 1.2。
-
kn funcCLI 插件现在使用func0.24。 -
现在,可以在 Kafka 代理中使用
kafka.eventing.knative.dev/external.topic注解。此注解可以使用现有的外部管理主题,而不是代理自行创建内部主题。 -
kafka-ch-controller和kafka-webhookKafka 组件不再存在。这些组件已被kafka-webhook-eventing组件替代。 - OpenShift Serverless 功能技术预览现在默认使用 Source-to-Image (S2I) 来构建容器镜像。
1.24.2. 已知问题 复制链接链接已复制到粘贴板!
- Kafka 代理、Kafka 源和 Kafka sink 禁用 Federal Information Processing Standards (FIPS) 模式。
-
如果您要删除包括 Kafka 代理的命名空间,当
auth.secret.ref.namesecret 在代理被删除之前被删除,则命名空间终结器(finalizer)可能无法删除。 使用大量 Knative 服务运行 OpenShift Serverless 时,可能会导致运行的 Knativeivator pod 接近其默认的内存限值 600MB。如果使用的内存达到这个限值,则这些 pod 可能会重启。通过修改
KnativeServing自定义资源,可以配置激活器部署的请求和限值:Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
如果您使用 Cloud Native Buildpacks 作为一个函数的本地构建策略,
kn func将无法自动启动 podman,或使用 SSH 隧道到远程守护进程。这些问题的解决方法是,在部署函数前,在本地开发计算机上已在运行 Docker 或 podman 守护进程。 - On-cluster 函数构建当前针对 Quarkus 和 Golang 运行时会失败。它们适用于 Node、Typescript、Python 和 Springboot 运行时。
1.25. Red Hat OpenShift Serverless 1.22.0 复制链接链接已复制到粘贴板!
OpenShift Serverless 1.22.0 现已正式发布。OpenShift Container Platform 上的 OpenShift Serverless 的新功能、更新和已知的问题包括在以下备注中。
1.25.1. 新功能 复制链接链接已复制到粘贴板!
- OpenShift Serverless 现在使用 Knative Serving 1.1。
- OpenShift Serverless 现在使用 Knative Eventing 1.1。
- OpenShift Serverless 现在使用 Kourier 1.1。
-
OpenShift Serverless 现在使用 Knative (
kn) CLI 1.1。 - OpenShift Serverless 现在使用 Knative Kafka 1.1。
-
kn funcCLI 插件现在使用func0.23。 - init 容器支持 Knative 服务现在作为技术预览提供。
- 持久性卷声明 (PVC) 对 Knative 服务的支持现在作为技术预览提供。
-
knative-serving、knative-serving-ingress、knative-eventing和knative-kafka系统命名空间现在默认具有knative.openshift.io/part-of: "openshift-serverless"标签。 - 添加了 Knative Eventing - Kafka Broker/Trigger 仪表板,它允许在 web 控制台中视觉化 Kafka 代理并触发指标。
- 添加了 Knative Eventing - KafkaSink 仪表板,它允许在 web 控制台中视觉化 KafkaSink 指标。
- Knative Eventing - Broker/Trigger 仪表板现在被称为 Knative Eventing - 基于频道的代理/触发器。
-
knative.openshift.io/part-of: "openshift-serverless"标签已替换knative.openshift.io/system-namespace标签。 -
Knative Serving YAML 配置文件中的命名样式从 camel 格式(
ExampleName)改为连字符格式 (example-name) 。从这个版本开始,在创建或编辑 Knative Serving YAML 配置文件时使用连字符格式表示法。
1.25.2. 已知问题 复制链接链接已复制到粘贴板!
- Kafka 代理、Kafka 源和 Kafka sink 禁用 Federal Information Processing Standards (FIPS) 模式。
1.26. Red Hat OpenShift Serverless 1.21.0 复制链接链接已复制到粘贴板!
OpenShift Serverless 1.21.0 现已正式发布。OpenShift Container Platform 上的 OpenShift Serverless 的新功能、更新和已知的问题包括在以下备注中。
1.26.1. 新功能 复制链接链接已复制到粘贴板!
- OpenShift Serverless 现在使用 Knative Serving 1.0
- OpenShift Serverless 现在使用 Knative Eventing 1.0。
- OpenShift Serverless 现在使用 Kourier 1.0.
-
OpenShift Serverless 现在使用 Knative (
kn) CLI 1.0。 - OpenShift Serverless 现在使用 Knative Kafka 1.0。
-
kn funcCLI 插件现在使用func0.21。 - Kafka sink 现在作为技术预览提供。
-
Knative 开源项目已开始弃用发现配置密钥,而是统一使用 kebab-cased 键。因此,OpenShift Serverless 1.18.0 发行注记中提到的
defaultExternalScheme键现已弃用,并被default-external-scheme键替代。键的使用说明保持不变。
1.26.2. 修复的问题 复制链接链接已复制到粘贴板!
-
在 OpenShift Serverless 1.20.0 中,存在一个与发送事件相关的问题,会影响使用
kn event send向服务发送事件。这个问题现已解决。 -
在 OpenShift Serverless 1.20.0 (
func0.20) 中,使用http模板创建的 TypeScript 功能无法在集群中部署。这个问题现已解决。 -
在 OpenShift Serverless 1.20.0 (
func0.20) 中,使用gcr.ioregistry 部署功能会失败,并出现错误。这个问题现已解决。 -
在 OpenShift Serverless 1.20.0 (
func0.20) 中,使用kn func create命令创建 Springboot 功能项目目录,然后运行kn func build命令失败并显示错误消息。这个问题现已解决。 -
在 OpenShift Serverless 1.19.0 (
func0.19) 中,一些运行时无法使用 podman 来构建功能。这个问题现已解决。
1.26.3. 已知问题 复制链接链接已复制到粘贴板!
目前,域映射控制器无法处理包含当前不支持的路径的代理 URI。
这意味着,如果要使用
DomainMapping自定义资源 (CR) 将自定义域映射到代理,则必须使用代理的 ingress 服务配置DomainMappingCR,并将代理的确切路径附加到自定义域:DomainMappingCR 示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 代理的 URI 为
<domain-name>/<broker-namespace>/<broker-name>。
1.27. Red Hat OpenShift Serverless 1.20.0 复制链接链接已复制到粘贴板!
OpenShift Serverless 1.20.0 现已正式发布。OpenShift Container Platform 上的 OpenShift Serverless 的新功能、更新和已知的问题包括在以下备注中。
1.27.1. 新功能 复制链接链接已复制到粘贴板!
- OpenShift Serverless 现在使用 Knative Serving 0.26。
- OpenShift Serverless 现在使用 Knative Eventing 0.26。
- OpenShift Serverless 现在使用 Kourier 0.26。
-
OpenShift Serverless 现在使用 Knative (
kn) CLI 0.26。 - OpenShift Serverless 现在使用 Knative Kafka 0.26。
-
kn funcCLI 插件现在使用func0.20。 Kafka 代理现在作为技术预览提供。
重要FIPS 不支持 Kafka 代理(当前为技术预览)。
-
kn event插件现在作为技术预览提供。 -
kn service create命令的--min-scale和--max-scale标志已弃用。使用--scale-min和--scale-max标志。
1.27.2. 已知问题 复制链接链接已复制到粘贴板!
OpenShift Serverless 使用 HTTPS 的默认地址部署 Knative 服务。将事件发送到集群中的资源时,发件人不会配置集群证书颁发机构 (CA) 。这会导致事件交付失败,除非集群使用全局接受的证书。
例如,向公开访问的地址发送事件可正常工作:
kn event send --to-url https://ce-api.foo.example.com/
$ kn event send --to-url https://ce-api.foo.example.com/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 另一方面,如果服务使用由自定义 CA 发布的 HTTPS 证书的公共地址,则此交付会失败:
kn event send --to Service:serving.knative.dev/v1:event-display
$ kn event send --to Service:serving.knative.dev/v1:event-displayCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将事件发送到其他可寻址的对象(如代理或频道)不受此问题的影响,并可以正常工作。
- Kafka 代理目前无法在启用了联邦信息处理标准 (FIPS) 模式的集群中工作。
如果您使用
kn func create命令创建 Springboot 功能项目目录,后续的kn func build命令运行会失败并显示以下错误消息:[analyzer] no stack metadata found at path '' [analyzer] ERROR: failed to : set API for buildpack 'paketo-buildpacks/ca-certificates@3.0.2': buildpack API version '0.7' is incompatible with the lifecycle
[analyzer] no stack metadata found at path '' [analyzer] ERROR: failed to : set API for buildpack 'paketo-buildpacks/ca-certificates@3.0.2': buildpack API version '0.7' is incompatible with the lifecycleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 作为临时解决方案,您可以在函数配置文件
func.yaml中将builder属性更改为gcr.io/paketo-buildpacks/builder:base。使用
gcr.ioregistry 部署函数会失败并显示以下错误消息:Error: failed to get credentials: failed to verify credentials: status code: 404
Error: failed to get credentials: failed to verify credentials: status code: 404Copy to Clipboard Copied! Toggle word wrap Toggle overflow 作为临时解决方案,请使用与
gcr.io不同的 registry,如quay.io或docker.io。使用
http模板创建的 TypeScript 函数无法在集群中部署。作为临时解决方案,在
func.yaml文件中替换以下部分:buildEnvs: []
buildEnvs: []Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用这个:
buildEnvs: - name: BP_NODE_RUN_SCRIPTS value: build
buildEnvs: - name: BP_NODE_RUN_SCRIPTS value: buildCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在
func版本 0.20 中,一些运行时可能无法使用 podman 构建函数。您可能会看到类似如下的错误消息:ERROR: failed to image: error during connect: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.40/info": EOF
ERROR: failed to image: error during connect: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.40/info": EOFCopy to Clipboard Copied! Toggle word wrap Toggle overflow 这个问题存在以下临时解决方案:
通过在 service
ExecStart定义中添加--time=0来更新 podman 服务:服务配置示例
ExecStart=/usr/bin/podman $LOGGING system service --time=0
ExecStart=/usr/bin/podman $LOGGING system service --time=0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来重启 podman 服务:
systemctl --user daemon-reload
$ systemctl --user daemon-reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl restart --user podman.socket
$ systemctl restart --user podman.socketCopy to Clipboard Copied! Toggle word wrap Toggle overflow
或者,您可以使用 TCP 公开 podman API:
podman system service --time=0 tcp:127.0.0.1:5534 & export DOCKER_HOST=tcp://127.0.0.1:5534
$ podman system service --time=0 tcp:127.0.0.1:5534 & export DOCKER_HOST=tcp://127.0.0.1:5534Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.28. Red Hat OpenShift Serverless 1.19.0 复制链接链接已复制到粘贴板!
OpenShift Serverless 1.19.0 现已正式发布。OpenShift Container Platform 上的 OpenShift Serverless 的新功能、更新和已知的问题包括在以下备注中。
1.28.1. 新功能 复制链接链接已复制到粘贴板!
- OpenShift Serverless 现在使用 Knative Serving 0.25。
- OpenShift Serverless 现在使用 Knative Eventing 0.25。
- OpenShift Serverless 现在使用 Kourier 0.25。
-
OpenShift Serverless 现在使用 Knative (
kn) CLI 0.25。 - OpenShift Serverless 现在使用 Knative Kafka 0.25。
-
kn funcCLI 插件现在使用func0.19。 -
KafkaBindingAPI 在 OpenShift Serverless 1.19.0 中已弃用,并将在以后的发行版本中删除。 - HTTPS 重定向现在被支持,并可以为集群或每个 Knative 服务配置。
1.28.2. 修复的问题 复制链接链接已复制到粘贴板!
- 在以前的版本中,Kafka 频道分配程序仅在响应前等待本地提交成功,这可能会在 Apache Kafka 节点失败时导致事件丢失。Kafka 频道分配程序现在会在响应前等待所有同步副本提交。
1.28.3. 已知问题 复制链接链接已复制到粘贴板!
在
func版本 0.19 中,一些运行时可能无法使用 podman 构建函数。您可能会看到类似如下的错误消息:ERROR: failed to image: error during connect: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.40/info": EOF
ERROR: failed to image: error during connect: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.40/info": EOFCopy to Clipboard Copied! Toggle word wrap Toggle overflow 这个问题存在以下临时解决方案:
通过在 service
ExecStart定义中添加--time=0来更新 podman 服务:服务配置示例
ExecStart=/usr/bin/podman $LOGGING system service --time=0
ExecStart=/usr/bin/podman $LOGGING system service --time=0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来重启 podman 服务:
systemctl --user daemon-reload
$ systemctl --user daemon-reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl restart --user podman.socket
$ systemctl restart --user podman.socketCopy to Clipboard Copied! Toggle word wrap Toggle overflow
或者,您可以使用 TCP 公开 podman API:
podman system service --time=0 tcp:127.0.0.1:5534 & export DOCKER_HOST=tcp://127.0.0.1:5534
$ podman system service --time=0 tcp:127.0.0.1:5534 & export DOCKER_HOST=tcp://127.0.0.1:5534Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.29. Red Hat OpenShift Serverless 1.18.0 复制链接链接已复制到粘贴板!
OpenShift Serverless 1.18.0 现已正式发布。OpenShift Container Platform 上的 OpenShift Serverless 的新功能、更新和已知的问题包括在以下备注中。
1.29.1. 新功能 复制链接链接已复制到粘贴板!
- OpenShift Serverless 现在使用 Knative Serving 0.24.0。
- OpenShift Serverless 现在使用 Knative Eventing 0.24.0。
- OpenShift Serverless 现在使用 Kourier 0.24.0。
-
OpenShift Serverless 现在使用 Knative (
kn) CLI 0.24.0。 - OpenShift Serverless 现在使用 Knative Kafka 0.24.7。
-
kn funcCLI 插件现在使用func0.18.0。 在即将发布的 OpenShift Serverless 1.19.0 发行版本中,外部路由的 URL 方案将默认为 HTTPS 以增强安全性。
如果您不希望此更改应用到工作负载,您可以在升级到 1.19.0 前覆盖默认设置,方法是将以下 YAML 添加到
KnativeServing自定义资源 (CR) :Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您想在 1.18.0 中应用更改,请添加以下 YAML:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在接下来的 OpenShift Serverless 1.19.0 发行版本中,公开 Kourier 网关的默认服务类型将是
ClusterIP,而不是LoadBalancer。如果您不希望此更改应用到工作负载,您可以在升级到 1.19.0 前覆盖默认设置,方法是将以下 YAML 添加到
KnativeServing自定义资源 (CR) :Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
现在,您可以在 OpenShift Serverless 中使用
emptyDir卷。详情请参阅 OpenShift Serverless 文档中的 Knative Serving 文档。 -
现在,当您使用
kn func创建函数时,可以使用 Rust 模板。
1.29.2. 修复的问题 复制链接链接已复制到粘贴板!
- 1.4 之前的 Camel-K 版本与 OpenShift Serverless 1.17.0 不兼容。Camel-K 中的问题已被解决,Camel-K 版本 1.4.1 可以用于 OpenShift Serverless 1.17.0。
在以前的版本中,如果您为 Kafka 频道或新 Kafka 源创建新订阅,则 Kafka 数据平面可能会在新创建的订阅或 sink 报告就绪状态后准备好发送信息。
因此,数据平面没有报告就绪状态时发送的信息可能没有传送到订阅者或 sink。
在 OpenShift Serverless 1.18.0 中,这个问题已被解决,初始消息不再丢失。有关此问题的更多信息,请参阅 知识库文章 #6343981。
1.29.3. 已知问题 复制链接链接已复制到粘贴板!
较旧版本的 Knative
knCLI 可能会使用较旧版本的 Knative Serving 和 Knative Eventing API。例如,knCLI 版本 0.23.2 使用v1alpha1API 版本。另一方面,较新的 OpenShift Serverless 发行版本可能不再支持旧的 API 版本。例如,OpenShift Serverless 1.18.0 不再支持
kafkasources.sources.knative.dev API的版本v1alpha1。因此,使用带有较新的 OpenShift Serverless 的 Knative
knCLI 的旧版本可能会产生错误,因为kn无法找到过时的 API。例如,knCLI的 0.23.2 版本无法用于 OpenShift Serverless 1.18.0。为避免出现问题,请使用适用于 OpenShift Serverless 发行版本的最新
knCLI 版本。对于 OpenShift Serverless 1.18.0,使用 KnativeknCLI 0.24.0。
第 2 章 OpenShift Serverless 概述 复制链接链接已复制到粘贴板!
OpenShift Serverless 提供 Kubernetes 原生构建块,供开发人员在 OpenShift Container Platform 中创建和部署无服务器、事件驱动的应用程序。无服务器应用程序可按需扩展和缩减(从零),并由多个事件源触发。OpenShift Serverless 基于开源 Knative 项目,通过启用企业级无服务器平台为混合和多云环境提供可移植性和一致性。
因为 OpenShift Serverless 的发行节奏与 OpenShift Container Platform 不同,所以现在 OpenShift Serverless 文档为产品的每个次版本单独提供。
OpenShift Serverless 文档位于 https://docs.openshift.com/serverless/。
特定版本的文档可以通过版本选择器下拉菜单获得,或者直接向 URL 添加版本,例如 https://docs.openshift.com/serverless/1.28。
另外,OpenShift Serverless 文档也包括在红帽门户网站中,地址为 https://docs.redhat.com/en/documentation/red_hat_openshift_serverless//。
如需有关 OpenShift Serverless 生命周期和支持的平台的更多信息,请参阅 Operator 生命周期。
2.1. OpenShift Serverless 的组件 复制链接链接已复制到粘贴板!
2.1.1. Knative Serving 复制链接链接已复制到粘贴板!
Knative Serving 基于 Kubernetes 构建,支持将应用程序和功能作为无服务器容器进行部署。服务简化了应用程序部署,基于传入的流量动态扩展,并支持通过流量分割来支持自定义推出策略。
Knative Serving 包括以下功能:
- 简化无服务器容器的部署
- 基于流量的自动扩展,包括缩减到零
- 路由和网络编程
- 时点应用程序快照及其配置
2.1.2. Knative Eventing 复制链接链接已复制到粘贴板!
Knative Eventing 提供了一个可组合原语的平台,以启用后绑定事件源和事件用户。
Knative Eventing 支持以下架构云原生概念:
- 服务在独立于生产的开发和部署过程中松散耦合。
- 生产者可以在消费者侦听前生成事件,消费者可以表达对尚未生成的事件或事件类的兴趣。
- 服务可以连接在不修改制作者或消费者的情况下创建新应用,并且能够从特定制作者选择特定事件子集。
2.1.3. OpenShift Serverless Functions 复制链接链接已复制到粘贴板!
OpenShift Serverless 功能允许您编写部署为 Knative Services 的功能,并利用 Knative Serving 和 Eventing。
OpenShift Serverless Functions 包括以下功能:
支持以下构建策略:
- Source-to-Image(S2I)
- Buildpacks
- 多个运行时
-
通过 Knative (
kn) CLI 的本地开发人员体验 - 项目模板
- 支持接收 CloudEvents 和普通 HTTP 请求
2.1.4. OpenShift Serverless Logic 复制链接链接已复制到粘贴板!
OpenShift Serverless Logic 允许您使用 YAML 或 JSON 文件定义声明性工作流模型。声明性工作流模型编配事件驱动的无服务器应用程序。OpenShift Serverless Logic 可让您视觉化工作流的执行,这简化了调试和优化。它还包括内置的错误处理和容错功能,从而更轻松地处理工作流执行期间发生的错误和异常。OpenShift Serverless Logic 实现 CNCF Serverless 工作流规格。
2.1.5. Knative CLI 复制链接链接已复制到粘贴板!
Knative (kn) CLI 允许您从命令行或 Shell 脚本中创建 Knative 资源。通过其广泛的帮助页和自动完成支持,它可让您记住 Knative 资源模式的详细结构。
Knative (kn) CLI 包括以下功能:
支持管理以下 Knative Serving 功能:
- 服务
- 修订
- Routes
支持管理以下 Knative Eventing 实体:
- 源
- 代理(Broker)
- 触发器
- Channels
- 订阅
-
基于 Kubernetes (
kubectl) CLI 工具的设计插件架构 - Knative 集成到 Tekton 管道中
第 3 章 Knative Serving 复制链接链接已复制到粘贴板!
Knative Serving 可以帮助需要创建、部署和管理云原生应用程序的开发人员。它以 Kubernetes 自定义资源定义 (CRD) 的形式提供一组对象,用于定义和控制 OpenShift Container Platform 集群上无服务器工作负载的行为。
开发人员使用这些 CRD 创建自定义资源(CR)实例,这些实例可作为构建块用于处理复杂用例。例如:
- 快速部署无服务器容器。
- 自动缩放 pod。
3.1. Knative Serving 资源 复制链接链接已复制到粘贴板!
- 服务
-
service.serving.knative.devCRD 会自动管理工作负载的生命周期,以确保应用程序通过网络部署并可访问。每次用户创建的服务或自定义资源发生变化时,它都会创建一个路由、配置和新修订。Knative 中进行的大多数开发人员交互都是通过修改服务进行的。 - Revision(修订)
-
revision.serving.knative.devCRD 是每次对工作负载进行修改所涉及代码和配置的时间点快照。所有修订均为不可变对象,可以根据需要保留。 - Route(路由)
-
route.serving.knative.devCRD 可将网络端点映射到一个或多个修订。您可通过多种方式管理流量,包括部分流量和指定路由。 - Configuration(配置)
-
configuration.serving.knative.devCRD 可保持部署所需状态。它可在使编程过程和配置配置过程相互分离。修改配置则会创建一个新修订。
第 4 章 Knative Eventing 复制链接链接已复制到粘贴板!
OpenShift Container Platform 上的 Knative Eventing 可让开发人员使用 事件驱动的架构和无服务器应用程序。事件驱动的体系结构是基于事件和事件用户间分离关系的概念。
事件生成者创建事件,事件 sink、或消费者接收事件。Knative Eventing 使用标准 HTTP POST 请求来发送和接收事件制作者和 sink 之间的事件。这些事件符合 CloudEvents 规范,它允许在任何编程语言中创建、解析、发送和接收事件。
Knative Eventing 支持以下用例:
- 在不创建消费者的情况下发布事件
- 您可以将事件作为 HTTP POST 发送到代理,并使用绑定分离生成事件的应用程序的目标配置。
- 在不创建发布程序的情况下消费事件
- 您可以使用 Trigger 来根据事件属性消费来自代理的事件。应用程序以 HTTP POST 的形式接收事件。
要启用多种 sink 类型的交付,Knative Eventing 会定义以下通用接口,这些接口可由多个 Kubernetes 资源实现:
- 可寻址的资源
-
能够接收和确认通过 HTTP 发送的事件到 Event 的
status.address.url字段中定义的地址。KubernetesService资源也满足可寻址的接口。 - 可调用的资源
-
能够通过 HTTP 接收事件并转换它,并在 HTTP 响应有效负载中返回
0或1新事件。这些返回的事件可能会象处理外部事件源中的事件一样进一步处理。
4.1. 为 Apache Kafka 使用 Knative 代理 复制链接链接已复制到粘贴板!
Apache Kafka 的 Knative 代理实现提供了集成选项,供您在 OpenShift Serverless 中使用支持的 Apache Kafka 消息流平台版本。Kafka 为事件源、频道、代理和事件 sink 功能提供选项。
Apache Kafka 的 Knative 代理提供附加选项,例如:
- Kafka 源
- Kafka 频道
- Kafka 代理
- Kafka 接收器
第 5 章 关于 OpenShift Serverless Functions 复制链接链接已复制到粘贴板!
OpenShift Serverless Functions 帮助开发人员在 OpenShift Container Platform 上创建和部署无状态、事件驱动的函数,作为 Knative 服务。kn func CLI 作为 Knative kn CLI 的插件提供。您可以使用 kn func CLI 在集群中创建、构建和部署容器镜像作为 Knative 服务。
5.1. 包括的运行时 复制链接链接已复制到粘贴板!
OpenShift Serverless Functions 提供了一组模板,可用于为以下运行时创建基本函数:
5.2. 后续步骤 复制链接链接已复制到粘贴板!
- 函数入门。
第 6 章 OpenShift Serverless Logic 概述 复制链接链接已复制到粘贴板!
OpenShift Serverless Logic 允许开发人员定义编配事件驱动的无服务器应用程序的声明工作流模型。
您可以使用 YAML 或 JSON 格式编写工作流模型,这是在云或容器环境中开发和部署无服务器应用程序的理想选择。
要在 OpenShift Container Platform 中部署工作流,您可以使用 OpenShift Serverless Logic Operator。
以下小节概述了 OpenShift Serverless Logic 概念。
6.1. 事件 复制链接链接已复制到粘贴板!
事件状态由一个或多个事件定义组成。事件定义合并,以指定事件状态侦听的 CloudEvent 类型。您可以在指定的 CloudEvent 接收时,使用事件状态来启动新的工作流实例,或者暂停执行现有工作流实例,直到收到指定的 CloudEvent 实例。
在事件状态定义中,onEvents 属性用于对可能触发相同操作集的 CloudEvent 类型进行分组。事件定义中的 exclusive 属性指示如何计算事件匹配。如果 exclusive 属性的值为 false,则必须收到 eventRefs 数组中的所有 CloudEvent 类型才能发生匹配项。否则,任何引用的 CloudEvent 类型的接收都被视为匹配项。
以下示例显示了由两个 CloudEvent 类型组成的事件定义,包括 noisy 和 silent :
事件定义示例
为指示当收到 noisy 和 silent CloudEvent 类型时发生事件匹配,并为这两个 CloudEvent 类型执行不同的操作,请定义包含独立 onEvent 项中的事件定义的事件状态,并将 exclusive 属性设置为 false。
带有多个 onEvent 项的事件状态定义示例
6.2. 回调 复制链接链接已复制到粘贴板!
Callback 状态执行一个操作,并等待作为操作结果生成的事件,然后再恢复工作流。通过回调状态执行的操作是异步外部服务调用。因此,回调状态适合执行 fire&wait-for-result 操作。
从工作流的角度来看,异步服务表示控制立即返回到调用者,而不必等待操作完成。操作完成后,会发布 CloudEvent 来恢复工作流。
JSON 格式的回调状态示例
YAML 格式的回调状态示例
action 属性定义触发外部活动或服务的函数调用。在操作执行后,Callback 状态将等待 CloudEvent,这表示调用的服务完成手动决策。
收到完成回调事件后,Callback 状态完成其执行,并过渡到下一个定义的工作流状态;如果是最终状态,则完成工作流执行。
6.3. JQ 表达式 复制链接链接已复制到粘贴板!
每个工作流实例都与一个数据模型关联。数据模型由 JSON 对象组成,无论工作流文件是否包含 YAML 或 JSON。JSON 对象的初始内容取决于工作流的启动方式。如果工作流是使用 CloudEvent 创建的,则工作流内容会从 data 属性获取。如果工作流是通过 HTTP POST 请求启动的,则工作流内容将从请求正文获取。
JQ 表达式用于与数据模型交互。支持的表达式语言包括 JsonPath 和 JQ。JQ 表达式语言是默认的语言。您可以使用 expressionLang 属性将表达式语言更改为 JsonPath。
功能中的 JQ 表达式示例
{
"name": "max",
"type": "expression",
"operation": "{max: .numbers | max_by(.x), min: .numbers | min_by(.y)}"
}
{
"name": "max",
"type": "expression",
"operation": "{max: .numbers | max_by(.x), min: .numbers | min_by(.y)}"
}
6.4. 错误处理 复制链接链接已复制到粘贴板!
OpenShift Serverless Logic 允许您定义 显式 错误处理。您可以在工作流模型中定义,如果发生错误而不是某些通用错误处理实体,则应该发生什么情况。通过显式错误处理,您可以处理在工作流和外部系统交互期间可能出现的错误。发生错误时,它会更改常规工作流序列。在这些情况下,工作流状态过渡到可能处理错误的备选状态,而不是转换到预定义的状态。
每个工作流状态都可以定义错误处理,这仅与执行期间可能出现的错误相关。在一个状态中定义的错误处理无法用于处理在工作流执行过程中发生另一个状态的错误。
在工作流状态执行过程中可能会出现的未知错误,这些错误在工作流定义中没有被显式处理,应该由运行时实现报告并停止工作流执行。
6.4.1. 错误定义 复制链接链接已复制到粘贴板!
工作流中的错误定义由 名称和 代码 参数组成。name 是错误的简短和自然语言描述,如 错误的参数。code 参数有助于实施来识别错误。
code 参数是必需的,引擎使用不同的策略将提供的值映射到运行时遇到的异常。可用的策略包括 FQCN、错误消息和状态代码。
在工作流执行过程中,您必须处理工作流顶级错误属性中的已知工作流 错误。此属性可以是 字符串类型,这意味着它可以引用可重复使用的 JSON 或 YAML 定义文件,包括错误定义,或者具有 数组类型,您可以在工作流定义中内联定义这些检查错误。
以下示例显示了两种类型的定义:
引用可重复使用的 JSON 错误定义文件的示例
{
"errors": "file://documents/reusable/errors.json"
}
{
"errors": "file://documents/reusable/errors.json"
}
引用可重复使用的 YAML 错误定义文件的示例
errors: file://documents/reusable/errors.json
errors: file://documents/reusable/errors.json
使用 JSON 文件内联定义工作流错误的示例
使用 YAML 文件内联定义工作流错误示例
errors:
- name: Service not found error
code: '404'
description: Server has not found anything matching the provided service endpoint
information
errors:
- name: Service not found error
code: '404'
description: Server has not found anything matching the provided service endpoint
information
6.5. 架构定义 复制链接链接已复制到粘贴板!
OpenShift Serverless Logic 支持两种类型的架构定义:输入架构定义和输出架构定义。
6.5.1. 输入模式定义 复制链接链接已复制到粘贴板!
dataInputSchema 参数根据定义的 JSON 架构验证工作流数据输入。提供数据InputSchema 非常重要,因为它用于在执行任何工作流状态前验证所提供的工作流数据输入是否正确。
您可以按照以下方式定义 数据InputSchema :
数据InputSchema 定义示例
"dataInputSchema": {
"schema": "URL_to_json_schema",
"failOnValidationErrors": false
}
"dataInputSchema": {
"schema": "URL_to_json_schema",
"failOnValidationErrors": false
}
schema 属性是一个 URI,其中包含用于验证工作流数据输入的 JSON 模式的路径。URI 可以是类路径 URI、文件或 HTTP URL。如果指定了 classpath URI,则 JSON 模式文件必须放在项目的资源部分或 classpath 中包含的任何其他目录中。
failOnValidationErrors 是一个可选标志,表示输入数据与指定的 JSON 模式不匹配时采用的行为。如果没有指定或设置为 true,则抛出异常,流执行会失败。如果设置为 false,则执行流,并输出验证错误的级别 WARN 日志。
6.5.2. 输出架构定义 复制链接链接已复制到粘贴板!
在工作流执行后应用输出架构定义,以验证输出模型是否具有预期的格式。它也可用于 Swagger 生成目的。
与 Input 模式定义类似,您必须使用 outputSchema 指定到 JSON 模式的 URL,如下所示:
outputSchema 定义示例
为 dataInputSchema 描述的相同规则适用于 schema 和 failOnValidationErrors。唯一的区别是在工作流执行后应用后者的标记。
6.6. 自定义功能 复制链接链接已复制到粘贴板!
OpenShift Serverless Logic 支持自定义功能类型,它允许实现扩展功能定义功能。通过与 操作 字符串结合使用,您可以使用预定义的功能类型列表。
自定义功能类型可能无法在其他运行时实现中可移植。
6.6.1. Sysout 自定义功能 复制链接链接已复制到粘贴板!
您可以使用 sysout 功能进行日志记录,如下例所示:
sysout 功能定义示例
: 后面的字符串是可选的,用于指示日志级别。可能的值有 TRACE,DEBUG,INFO,WARN, 和 ERROR。如果值不存在,则 INFO 是默认值。
在 状态 定义中,您可以调用相同的 sysout 功能,如下例所示:
状态中的 sysout 功能引用示例
在上例中,message 参数可以是 jq 表达式,也可以是使用 interpolation 的 jq 字符串。
6.6.2. Java 自定义功能 复制链接链接已复制到粘贴板!
OpenShift Serverless Logic 支持 Apache Maven 项目中的 java 功能,在其中定义您的工作流服务。
以下示例显示了 java 函数的声明:
java 功能声明示例
6.6.3. Knative 自定义功能 复制链接链接已复制到粘贴板!
OpenShift Serverless Logic 通过 knative-serving 附加组件提供自定义功能实现,以调用 Knative 服务。它允许您具有静态 URI,定义用于执行 HTTP 请求的 Knative 服务。URI 中定义的 Knative 服务在当前 Knative 集群中查询,并转换为有效的 URL。
以下示例使用部署的 Knative 服务:
kn service list NAME URL LATEST AGE CONDITIONS READY REASON custom-function-knative-service http://custom-function-knative-service.default.10.109.169.193.sslip.io custom-function-knative-service-00001 3h16m 3 OK / 3 True
$ kn service list
NAME URL LATEST AGE CONDITIONS READY REASON
custom-function-knative-service http://custom-function-knative-service.default.10.109.169.193.sslip.io custom-function-knative-service-00001 3h16m 3 OK / 3 True
您可以使用 Knative 服务名称声明 OpenShift Serverless Logic 自定义功能,如下例所示:
此功能发送 POST 请求。如果没有指定路径,OpenShift Serverless Logic 将使用根路径(/)。您还可以通过在操作中设置 method= 请求。在这种情况下,参数通过查询字符串转发。
GET 来发送 GET
6.6.4. REST 自定义功能 复制链接链接已复制到粘贴板!
OpenShift Serverless Logic 提供 REST 自定义类型作为快捷方式。在函数定义中使用自定义 rest 时,您可以指定要调用的 HTTP URI,以及要使用的 HTTP 方法(get、post、patch 或 put)。这可以通过使用 operation 字符串来完成。调用函数时,您可以使用 OpenAPI 功能传递请求参数。
以下示例显示了其他函数 的声明 :
在使用相对端点时,您必须将主机指定为属性。host 属性的格式是 kogito.sw.functions.<function_name>.host。在本例中,kogito.sw.functions.multiplyAllByAndSum.host 是 host 属性键。如果需要,您可以通过指定 kogito.sw.functions.multiplyAllAndSum.port 属性来覆盖默认端口(80)。
此端点充当正文,其字段 编号为 整数数组,将阵列中的每个项目乘以 倍数,并返回所有乘以项目的总和。
6.7. 超时 复制链接链接已复制到粘贴板!
OpenShift Serverless Logic 定义了几个超时配置,可用于在不同场景中为工作流执行配置最大时间。您可以配置工作流可以等待事件达到给定状态或工作流的最大执行时间。
无论在哪里定义,超时都必须配置为一定的时间或持续时间,它会在引用工作流元素处于活跃状态时开始。超时使用 ISO 8601 数据和时间标准 来指定持续时间,并遵循 PnDTnHnMn.nS 格式,其中天数被视为完全 24 小时。例如,PT15M 配置 15 分钟,P2DT3H4M 定义 2 天、3 小时和 4 分钟。
基于月的超时(如 P2M )或两个月的期限无效,因为月持续时间可能会有所不同。在这种情况下,改为使用 PT60D。
6.7.1. 工作流超时 复制链接链接已复制到粘贴板!
要配置在取消工作流前可以运行的最大时间,您可以使用工作流超时。取消后,工作流将被视为已完成,无法通过 GET 请求访问。因此,它的行为与默认情况下 中断 一样。
工作流超时使用顶级 timeout 属性定义。它可以有两种类型的 字符串 。和对象 字符串类型 定义了指向包含工作流超时定义的 JSON 或 YAML 文件的 URI。对象类型 用于定义内联超时定义。
例如,要在执行一小时后取消工作流,请使用以下配置:
工作流超时示例
6.7.2. 事件超时 复制链接链接已复制到粘贴板!
当您在工作流中定义状态时,您可以使用 timeout 属性配置最大时间来完成此状态。当那时过来时,状态被视为超时,引擎将继续从此状态执行。执行流取决于状态类型,例如,可能会执行过渡到下一状态。
基于事件的状态可以使用 sub-property eventTimeout 来配置等待事件到达的最长时间。这是当前实现中唯一支持的属性。
事件超时支持回调状态超时、交换机状态超时和事件状态超时。
6.7.2.1. 回调状态超时 复制链接链接已复制到粘贴板!
当您必须正常调用外部服务时,可以使用 Callback 状态,并等待事件形式的异步响应。
在响应事件被消耗后,工作流将继续执行,一般地移至 transition 属性中定义的下一个状态。
由于 Callback 状态在事件被使用前停止执行,因此您可以为它配置 eventTimeout,如果事件没有到达配置的时间持续时间,工作流将继续移至转换中定义的下一个状态。
带有超时 的回调 状态示例
6.7.2.2. 切换状态超时 复制链接链接已复制到粘贴板!
当您需要根据特定条件执行操作时,您可以使用 Switch 状态。这些条件可以基于工作流数据、dataConditions 或 events eventConditions。
使用 eventConditions 时,工作流执行会等待决定决定,直到任何配置的事件到达并匹配一个条件。在这种情况下,您可以配置一个事件超时,该超时控制事件与条件匹配的最长时间。
如果这个时间过期,工作流将移到 defaultCondition 属性中定义的状态。
带有超时的 Switch 状态示例
6.7.2.3. 事件状态超时 复制链接链接已复制到粘贴板!
Event 状态用于等待工作流接收一个或多个事件,执行一组操作,然后继续执行。如果 Event 状态是启动状态,则会创建一个新的工作流实例。
timeout 属性用于此状态,用于配置工作流应等待配置的事件到达的最长时间。
如果超过这个时间,并且不会收到事件,工作流将移到 transition 属性中定义的状态,或结束工作流实例(如果是 end 状态),而不执行任何操作。
带有超时的事件状态示例
6.8. parallelism 复制链接链接已复制到粘贴板!
OpenShift Serverless Logic 序列化并行任务的执行。单词 parallel 并不表示同时执行,这意味着分支的执行之间没有逻辑依赖项。如果活跃的分支挂起其执行,则不活跃分支可以启动或停止任务的执行,而无需等待活跃的分支完成。例如,一个活跃的分支可能会在等待事件接收时暂停其执行。
并行状态是一种状态,它将当前工作流实例执行路径分成多个路径,每个分支一个。这些执行路径并行执行,并根据定义的 completionType 参数值重新加入到当前执行路径中。
JSON 格式的并行工作流示例
YAML 格式的并行工作流示例
在上例中,allOf 定义所有分支必须完成,然后状态可以过渡或结束。如果没有设置此参数,则这是默认值。
6.9. 后续步骤 复制链接链接已复制到粘贴板!
第 7 章 OpenShift Serverless 支持 复制链接链接已复制到粘贴板!
如果您在执行本文档所述的某个流程时遇到问题,请访问红帽客户门户网站 http://access.redhat.com。您可以使用红帽客户门户网站搜索或浏览有关红帽产品的技术支持文章。您还可以向红帽全球支持服务 (GSS) 提交支持问题单,或者访问其他产品文档。
如果您对本文档有任何改进建议,或发现了任何错误,您可以提交一个与相关文档组件的 Jira 问题。请提供具体信息,如章节号、指南名称和 OpenShift Serverless 版本,以便我们可以快速地找到相关内容。
以下部分定义集群大小要求适用于这些发行版本:
- OpenShift Container Platform
- OpenShift Dedicated
7.1. 关于红帽知识库 复制链接链接已复制到粘贴板!
红帽知识库提供丰富的内容以帮助您最大程度地利用红帽的产品和技术。红帽知识库包括文章、产品文档和视频,概述了安装、配置和使用红帽产品的最佳实践。另外,您还可以搜索已知问题的解决方案,其提供简洁的根原因描述和补救措施。
7.2. 搜索红帽知识库 复制链接链接已复制到粘贴板!
如果出现 OpenShift Container Platform 问题,您可以先进行搜索,以确定红帽知识库中是否已存在相关的解决方案。
先决条件
- 您有红帽客户门户网站帐户。
流程
- 登录到 红帽客户门户网站。
在主红帽客户门户网站搜索字段中,输入与问题相关的关键字和字符串,包括:
- OpenShift Container Platform 组件(如 etcd)
- 相关步骤(比如 安装)
- 警告、错误消息和其他与输出与特定的问题相关
- 点 Search。
- 选择 OpenShift Container Platform 产品过滤器。
- 在内容类型过滤中选择 Knowledgebase。
7.3. 提交支持问题单 复制链接链接已复制到粘贴板!
先决条件
-
您可以使用具有
cluster-admin角色的用户访问集群。 -
已安装 OpenShift CLI(
oc)。 - 您有红帽客户门户网站帐户。
- 您有红帽标准订阅或高级订阅。
流程
- 登录到 红帽客户门户网站 并选择 SUPPORT CASES → Open a case。
- 为您的问题选择适当的类别(如 Defect / Bug)、产品(OpenShift Container Platform)和产品版本(如果还没有自动填充则为 )。
- 查看推荐的红帽知识库解决方案列表,它们可能会与您要报告的问题相关。如果建议的文章没有解决这个问题,请点 Continue。
- 输入一个简洁但描述性的问题概述,以及问题症状的详细信息,以及您预期的结果。
- 查看更新的推荐红帽知识库解决方案列表,它们可能会与您要报告的问题相关。这个列表的范围会缩小,因为您在创建问题单的过程中提供了更多信息。如果建议的文章没有解决这个问题,请点 Continue。
- 请确保提供的帐户信息是正确的,如果需要,请相应调整。
检查自动填充的 OpenShift Container Platform 集群 ID 是否正确。如果不正确,请手动提供集群 ID。
使用 OpenShift Container Platform Web 控制台手动获得集群 ID:
- 导航到 Home → Dashboards → Overview。
- 该值包括在 Details 中的 Cluster ID 项中。
另外,也可以通过 OpenShift Container Platform Web 控制台直接创建新的支持问题单,并自动填充集群 ID。
- 从工具栏导航至 (?)help → Open Support Case。
- Cluster ID 的值会被自动填充 。
要使用 OpenShift CLI(
oc)获取集群 ID,请运行以下命令:oc get clusterversion -o jsonpath='{.items[].spec.clusterID}{"\n"}'$ oc get clusterversion -o jsonpath='{.items[].spec.clusterID}{"\n"}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow
完成以下提示的问题,点 Continue:
- 您在哪里遇到了这个问题?什么环境?
- 这个行为在什么时候发生?发生频率?重复发生?是否只在特定时间发生?
- 请提供这个问题对您的业务的影响及与时间相关的信息?
- 上传相关的诊断数据文件并点击 Continue。
建议您将使用 oc adm must-gather 命令收集的数据作为起点,并提供这个命令没有收集的与您的具体问题相关的其他数据。
- 输入相关问题单管理详情,点 Continue。
- 预览问题单详情,点 Submit。
7.4. 为支持收集诊断信息 复制链接链接已复制到粘贴板!
在提交问题单时同时提供您的集群信息,可以帮助红帽支持为您进行排除故障。您可使用 must-gather 工具来收集有关 OpenShift Container Platform 集群的诊断信息,包括与 OpenShift Serverless 相关的数据。为了获得快速支持,请提供 OpenShift Container Platform 和 OpenShift Serverless 的诊断信息。
7.4.1. 关于 must-gather 工具 复制链接链接已复制到粘贴板!
oc adm must-gather CLI 命令可收集最有助于解决问题的集群信息,包括:
- 资源定义
- 服务日志
默认情况下,oc adm must-gather 命令使用默认的插件镜像,并写入 ./must-gather.local。
另外,您可以使用适当的参数运行命令来收集具体信息,如以下部分所述:
要收集与一个或多个特定功能相关的数据,请使用
--image参数和镜像,如以下部分所述。例如:
oc adm must-gather --image=registry.redhat.io/container-native-virtualization/cnv-must-gather-rhel8:v4.13.0
$ oc adm must-gather --image=registry.redhat.io/container-native-virtualization/cnv-must-gather-rhel8:v4.13.0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要收集审计日志,请使用
-- /usr/bin/gather_audit_logs参数,如以下部分所述。例如:
oc adm must-gather -- /usr/bin/gather_audit_logs
$ oc adm must-gather -- /usr/bin/gather_audit_logsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意作为默认信息集合的一部分,不会收集审计日志来减小文件的大小。
当您运行 oc adm must-gather 时,集群的新项目中会创建一个带有随机名称的新 pod。在该 pod 上收集数据,并保存至以 must-gather.local 开头的一个新目录中。此目录在当前工作目录中创建。
例如:
NAMESPACE NAME READY STATUS RESTARTS AGE ... openshift-must-gather-5drcj must-gather-bklx4 2/2 Running 0 72s openshift-must-gather-5drcj must-gather-s8sdh 2/2 Running 0 72s ...
NAMESPACE NAME READY STATUS RESTARTS AGE
...
openshift-must-gather-5drcj must-gather-bklx4 2/2 Running 0 72s
openshift-must-gather-5drcj must-gather-s8sdh 2/2 Running 0 72s
...
另外,您可以使用 --run-namespace 选项在特定命名空间中运行 oc adm must-gather 命令。
例如:
oc adm must-gather --run-namespace <namespace> --image=registry.redhat.io/container-native-virtualization/cnv-must-gather-rhel8:v4.13.0
$ oc adm must-gather --run-namespace <namespace> --image=registry.redhat.io/container-native-virtualization/cnv-must-gather-rhel8:v4.13.0
7.4.2. 关于收集 OpenShift Serverless 数据 复制链接链接已复制到粘贴板!
您可使用 oc adm must-gather CLI 命令来收集有关集群的信息,包括与 OpenShift Serverless 相关的功能和对象。要使用 must-gather 来收集 OpenShift Serverless 数据,您必须为已安装的 OpenShift Serverless 版本指定 OpenShift Serverless 镜像和镜像标签。
先决条件
-
安装 OpenShift CLI (
oc) 。
流程
使用
oc adm must-gather命令收集数据:oc adm must-gather --image=registry.redhat.io/openshift-serverless-1/serverless-must-gather-rhel8:<image_version_tag>
$ oc adm must-gather --image=registry.redhat.io/openshift-serverless-1/serverless-must-gather-rhel8:<image_version_tag>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例命令
oc adm must-gather --image=registry.redhat.io/openshift-serverless-1/serverless-must-gather-rhel8:1.35.0
$ oc adm must-gather --image=registry.redhat.io/openshift-serverless-1/serverless-must-gather-rhel8:1.35.0Copy to Clipboard Copied! Toggle word wrap Toggle overflow