问题标签 [knative-serving]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
kubernetes - Knative 大使 Ingress
我正在尝试将 Knative 与大使一起使用。按照以下步骤安装 Knative,
安装 Knative
配置大使,
配置 Knative 使用 ambassdor 作为入口,
我已经在“ambassador-ns”命名空间下安装了大使。它工作正常。
部署 hello world 应用程序,
当我检查 ksvc 的状态时,
Knative 控制器日志
你能告诉我我做错了什么吗?
microk8s - 由于 x509 证书问题,knative helloworld 无法运行 microk8s
我已经使用 ubuntu(Ubuntu 20.04 LTS)在 microk8s 上安装了 knative。我正在尝试基本的 knative 示例,但它不起作用。1.首先我尝试了kn。(kn 无法读取配置,所以我使用microk8s.config > ~/kubeconfig
- 我尝试使用加载
kubectl create
,但得到相同的错误。任何想法。
knative - KNative 与 Istio 在端口 8080 上侦听
我已经设置了 Istio 的“入口网关”来监听 8080,并且在运行 Knative hello-world 时遇到了问题。有人这样设置 Knative 吗?
我希望互联网流量进入端口 8080 以显示 Knative hello world 的输出。
google-cloud-run - 请求在容器(应用程序)中成功完成后 1 分钟后始终返回 502
作为序言,我知道超过 1 分钟的 HTTP 请求是糟糕的设计,我将研究 Cloud Tasks,但我确实想弄清楚为什么会发生这个问题。
因此,如标题中所述,我对 Cloud Run 服务(完全托管)有一个简单的 API 请求,该请求需要超过 1 分钟的时间,该服务执行一些 DB 操作并生成 PDF 并将它们上传到 GCS。当我从客户端(浏览器)发出此请求时,它会在等待 1 分钟后始终返回 502 响应(可能来自 HTTP 负载均衡器):
但是,当我查看日志时,请求已成功完成(大约 4 到 5 分钟):
对于正在生成并上传到 GCS 的每个 PDF,我也会遇到这些“错误”之一,但从我读到的内容来看,这些不应该是真正的问题吗?:
为了验证这不仅仅是应用程序代码或浏览器的一些超时问题,我在本地构建的随机 API 调用上放置了 5 分钟的睡眠,一切正常且花花公子。
我已将 Cloud Run 上的请求超时设置为最大值(15 分钟),将最大并发设置为默认 80,将 CPU 和 RAM 的数量分别设置为 2 和 2GB,并将 Fastify(node.js)服务器上的超时设置为 15 分钟出色地。此外,在我收到 502 错误时,我查看了日志并没有发现表明实例内存不足或任何其他错误的错误。最后,我还按照建议使用 strace 更深入地查看系统调用,以防万一那里出了什么问题,但从我所见,一切看起来都很好。
最后,我怀疑容器和网关/负载均衡器之间的路由存在一些奇怪的竞争条件,但我对 Knative(构建 Cloud Run 的基础上)几乎一无所知,所以这只是一种预感。
如果有人对为什么会发生这种情况有更多的想法,请告诉我!
kubernetes - 在 tekton 管道中使用 knctl/kubectl 将镜像部署到 Knative 服务
我正在阅读官方Tekton 文档kubectl
,它使用标准部署对象清单将映像部署到 Kubernetes 。但是,我正在尝试使用 Tekton 管道作为 CI/CD 来部署在 knative 服务中,该服务应该使用knctl
或kubectl
使用 knative 服务 yaml 而不是knative 服务规范的部署 yaml
就像是
在这种情况下,我如何利用 Tekton。如果我要将镜像安装到任何随机的 Kubenetes 集群,我可以使用任何其他 CI/CD 工具以及部署清单。我相信 Tekton 应该会取代 Knative 构建以使其变得简单。
kubernetes - 如何在 Knative 中设置 MaxRevisionTimeoutSeconds?
我已经使用 Cloud run on gke 部署了一项服务,它使用 Knative 作为 k8s 的抽象。在 knative 默认配置中默认MaxRevisionTimeoutSeconds
设置为 600s,但根据此PR ,这是可自定义的。
我在 Knative 官方文档中找不到任何内容,有人可以在这里帮助我吗?
更新:
在深入挖掘了 knative 源代码和文档之后。看起来 是在MaxRevisionTimeoutSeconds
中定义的resource=ConfigMap/config-defaults
。所以必须用自定义值更新它。
由此看来,我们可以使用名为 as 的东西operator
来修改 ConfigMap 资源,但它不起作用可能是因为 gcp 不使用操作符来安装 Knative 组件。无论如何,我继续安装操作员,然后用来resource=knativeserving
覆盖配置默认值。但是当我尝试重新部署服务时,这也不起作用。
下一个解决方案是使用kubectl edit
. 我什至尝试这样做,但遇到了奇怪的行为。在我用来kubectl describe
检查更改的值时编辑 YAML 文件后,它有时会显示修改后的值,有时会显示旧值,有时甚至不会显示 YAML 中的特定键值对。此外,在进行此编辑后尝试重新部署服务时,它也不起作用。
如果有人能帮我解决这个问题,那就太好了。
apache-kafka - 每当kafka消费者服务(KafkaSource on Knative)上有任何http错误代码时如何重新传递消息
我正在使用 Knative Eventing(Kafka Source,它从 kafka Cluster 读取数据)来触发消费者服务,如果事件/消息没有成功处理(可能是任何原因),我想自动重新传递消息。我已尝试通读文档和 API 参考,但尚不清楚这是否可行。
问题:在 Knative 上,一旦 KafkaSource 将消息发送到消费者服务,消费者服务正在处理请求并发送 http 错误代码响应(基本上消息处理失败)并在消费者组中显示为延迟(待处理)。
预期:在这种情况下,希望在处理下一个顺序请求之前重新传递相同的消息。是否可以从 Kafka 源重新发送 mssage 或消费者服务重新发送失败的请求?
非常感谢!
斯里尼瓦斯 P.
kubernetes - 带有 Keycloak 网关守卫边车的 Knative 服务
我正在尝试部署以下服务:
失败并出现以下错误:
现在,如果我阅读规范(https://knative.dev/v0.15-docs/serving/getting-started-knative-app/),我可以看到这个例子:
它具有完全相同的结构。现在,我的问题是:
- 如何在不等待部署的情况下验证我的 yam?Intellij 有一个 k8n 插件,但我找不到机器可消耗的 serving.knative.dev/v1 的 CRD 模式。( https://knative.dev/docs/serving/spec/knative-api-specification-1.0/ )
- knative 允许有多个容器吗?(该配置与 apiVersion 完美配合:apps/v1 种类:部署)
knative - knative:基于自定义标头的路由?
我们可以创建一个有两个修订版的 knative 服务,然后我们可以像这样配置流量。
我们可以使用 header "Knative-Serving-Tag: v2" 来路由到 header-v2 版本。但是,我们希望使用自定义标头路由到特定修订,例如“用户:v2”。我们应该做什么?我们尝试了一些方法。首先,我们尝试编辑对应的虚拟服务,但是新的规则会被自动删除。然后,我们尝试添加一个新的虚拟服务。
主机不能和前一个相同,否则不会生效。我们不想更改主机,我们只想通过自定义标头进行路由。这样做的更好方法是什么?提前致谢。