1.19. Red Hat OpenShift Serverless 1.20.0
OpenShift Serverless 1.20.0 现已正式发布。OpenShift Container Platform 上的 OpenShift Serverless 的新功能、更新以及已知的问题包括在以下备注中。
1.19.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 func
CLI 插件现在使用func
0.20。 Kafka 代理现在作为技术预览提供。
重要FIPS 不支持 Kafka 代理(当前为技术预览)。
-
kn event
插件现在作为技术预览提供。 -
kn service create
命令的--min-scale
和--max-scale
标志已弃用。使用--scale-min
和--scale-max
标志。
1.19.2. 已知问题
OpenShift Serverless 使用 HTTPS 的默认地址部署 Knative 服务。将事件发送到集群中的资源时,发件人不会配置集群证书颁发机构 (CA) 。这会导致事件交付失败,除非集群使用全局接受的证书。
例如,向公开访问的地址发送事件可正常工作:
$ kn event send --to-url https://ce-api.foo.example.com/
另一方面,如果服务使用由自定义 CA 发布的 HTTPS 证书的公共地址,则此交付会失败:
$ kn event send --to Service:serving.knative.dev/v1:event-display
将事件发送到其他可寻址的对象(如代理或频道)不受此问题的影响,并可以正常工作。
- 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
作为临时解决方案,您可以在函数配置文件
func.yaml
中将builder
属性更改为gcr.io/paketo-buildpacks/builder:base
。使用
gcr.io
registry 部署函数会失败并显示以下错误消息:Error: failed to get credentials: failed to verify credentials: status code: 404
作为临时解决方案,请使用与
gcr.io
不同的 registry,如quay.io
或docker.io
。使用
http
模板创建的 TypeScript 函数无法在集群中部署。作为临时解决方案,在
func.yaml
文件中替换以下部分:buildEnvs: []
使用这个:
buildEnvs: - name: BP_NODE_RUN_SCRIPTS value: build
在
func
版本 0.20 中,一些运行时可能无法使用 podman 构建函数。您可能会看到类似如下的错误消息:ERROR: failed to image: error during connect: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.40/info": EOF
这个问题存在以下临时解决方案:
通过在 service
ExecStart
定义中添加--time=0
来更新 podman 服务:服务配置示例
ExecStart=/usr/bin/podman $LOGGING system service --time=0
运行以下命令来重启 podman 服务:
$ systemctl --user daemon-reload
$ systemctl restart --user podman.socket
或者,您可以使用 TCP 公开 podman API:
$ podman system service --time=0 tcp:127.0.0.1:5534 & export DOCKER_HOST=tcp://127.0.0.1:5534