问题标签 [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.

0 投票
1 回答
155 浏览

go - 如何创建 knative 服务

我已经编写了一个自定义资源作为部署的一部分。作为 reconcileKind 函数的一部分,我使用 Go 本身中的 Kubernetes API 编写了创建 pod 的逻辑,如下所示。

图片

我想将其转换为 knative 服务(而不是创建将始终运行的 POD),以便我可以使用 KPA 功能。我知道使用 .yaml 方式创建 knative 服务。但我想通过使用 Kubernetes API 本身来创建它。我确实在官方文档中进行了搜索,但解释的所有内容都是使用 .yaml 方式。

所以我很好奇我们是否可以直接使用Kubernetes API来实现knative服务?

0 投票
1 回答
511 浏览

go - 如何使用代码生成器为自定义资源定义生成代码

我想使用服务 api,它是 knative 服务仓库的一部分来创建服务应用程序。由于我正在编写自定义控制器,因此我需要使用 Go 客户端。我发现很难使用代码生成器生成样板代码。我正在关注下面提到的关于如何做到这一点的博客。

  1. https://insujang.github.io/2020-02-13/programming-kubernetes-crd/#write-template-code
  2. https://blog.openshift.com/kubernetes-deep-dive-code-generation-customresources/

但我无法实现。任何帮助表示赞赏。

0 投票
1 回答
498 浏览

docker - Knative - kubernetes yaml 从谷歌云存储挂载数据

我是使用 YAML 文件进行 Kubernetes 和 Cloudrun 部署的新手,所以请原谅这个问题应该非常基本。

问题:我有存储在云存储中的文件。我想在容器启动我的 docker 入口点之前将这些文件下载到本地挂载中。

据我了解,KNative 不支持volumes 或persistentVolumeClaims。

如果这种理解是错误的,请纠正我。

让我用下面的图片更好地解释它, 在此处输入图像描述

在 Kubernetes pod 内部,我将容器启动分为 3 个部分。

  1. Prehook 从 GCS(Google 云存储)下载文件 -> 这会将文件从 google 存储复制到本地挂载。可以使用某种带有 clouddk 映像的 init 容器,然后使用 gsutils 将文件复制下来。
  2. 本地挂载文件系统 -> prehook 将写入此挂载。具有“容器映像”的容器也可以访问此挂载。
  3. 容器图像 -> 这是我在容器中运行的主要容器图像。

我正在寻找适用于 cloudrun 的 Knative 服务解决方案。我该如何解决这个问题?

另外,是否可以在没有 Knative 服务的情况下使用 yaml 文件来创建 cloudrun 服务?

0 投票
1 回答
90 浏览

knative - 没有 TLS 的本地本地服务和大使

我正在尝试将 knative 用于一些长时间运行的进程,这些进程仅在集群内本地触发。

作为网络层,我们已经使用了 Ambassador,它配置了 TLS,并将 HTTP 请求重定向到 HTTPS:

我使用“cluster-local”标志创建了服务:

如果我尝试从集群中访问它,我会被重定向到 https 版本:

curl -k -v https://helloworld-go.default.svc.cluster.local可以工作,但显然证书的主机名与cluster.local

如果我删除redirect_cleartext_from: 8080,端口 80 似乎不再可用:

有没有办法只为 svc.cluster.local 禁用 http => https 重定向?对于其他工作负载 - 不通过 knative 提供服务 - 我可以使用 http 和http://deployment-name.namespace/

0 投票
1 回答
127 浏览

autoscaling - 如何告诉 Knative Pod Autoscaler 不要杀死正在进行的长时间运行的 pod

我的目标: 实现一个每周运行一次的 cron 作业,我打算在 Knative 上实现这个拓扑以节省计算资源:

PingSource -> knative 服务

PingSource 将每周一次向 knative 服务发出一个虚拟事件,以调出 1 个 knative 服务 pod。knative service pod 会获取大量数据,然后进行处理。

我的担心: 如果我设置enable-scale-to-zero为 true,Knative pod 自动缩放器可能会关闭 knative 服务 pod,即使该 pod 尚未完成其工作。

到目前为止,我探索了:

  • scale-to-zero-grace-periodwhich 可以配置为告诉自动缩放器在最后一个流量结束后应该等待多长时间才能关闭 pod 。但我不认为这种方法是微妙的。我更喜欢有点类似于 readinessProbe 或 livenessProbe。在发送终止信号之前,自动缩放器应该发送一个探测来了解 pod 是否正在处理某些东西。

  • 此外,根据 knative 的文档,有两种类型的事件接收器:可调用和可寻址。Addressable 和 Callable 都返回响应或确认。knative 自动缩放器是否会将 pod 视为处理请求,直到 pod 返回响应/确认?所以只要 pod 没有响应,它就不会被自动缩放器移除。

0 投票
1 回答
82 浏览

google-cloud-platform - 为什么我的 knative 触发状态 Unknown 由于 TopicReady Unknown?

最近我正在尝试 Knative 示例https://github.com/meteatamel/knative-tutorial/blob/master/docs/image-processing-pipeline.md,我使用默认代理(MTChannelBasedBroker)和触发器创建了 knative 触发器,我还在同一个命名空间中安装了 Google Cloud Pub/Sub Channel。我不确定是什么导致了这个错误。 在此处输入图像描述

0 投票
2 回答
86 浏览

go - 在 go 中列出服务

我正在尝试列出 knative (v0.17.0) services,我有一个clientset但我不知道从哪里开始。这是我为测试启动的服务:

如果您有任何建议、教程或示例,那就太好了

0 投票
2 回答
87 浏览

knative - 如何扩展 knative 服务功能并为其添加新功能?

我目前正在评估 Knative Serving 作为将我的应用程序部署到 Kubernetes 的替代方案。我想知道是否有可能扩展 Knative 功能以为我的应用程序开发人员提供更多功能,例如,我希望他们定义其他自定义基础架构,如云数据库,或者让他们配置 Istio 功能,如授权策略,仅使用服务 yaml 清单,无需部署其他 Kubernetes yaml。归根结底,我只想将 Knative Service 作为我的应用程序合同,而不是其他任何东西。

是否有可能做到这一点?有没有关于如何做的文件?

0 投票
1 回答
273 浏览

tensorflow-serving - KFServing pod“错误:容器存储初始化程序无效”

我是 KFServing 和 Kubeflow 的新手。

我正在关注https://github.com/kubeflow/kfserving/tree/master/docs/samples/v1alpha2/tensorflow来部署一个简单的推理服务。

但是,在查看日志时,我找不到容器存储初始化程序。我的预测服务 pod 拥有的唯一容器是 kfserving 和 queue-proxy。

我目前在 IBM Cloud 上使用 Kubeflow 1.2 和 Kubernetes 1.17。

错误信息图片

0 投票
2 回答
419 浏览

kubernetes - 无法解析主机:http://helloworld-go.default.mydomain.com knative

我是 Knative 的新手。我已经安装了用于集群支持的 minikube 和 knative 所需的所有工具。在参考此创建服务时:https://knative.dev/docs/serving/getting-started-knative-app/

我得到以下输出:

  1. 按预期创建服务命令输出):

kn service create helloworld-go --image gcr.io/knative-samples/helloworld-go --env TARGET="Go Sample v1"

在命名空间“默认”中创建服务“helloworld-go”:

0.047s 配置仍在工作以反映最新的所需规范。0.407s 路线仍在努力反映最新的所需规范。0.522s 配置“helloworld-go”正在等待修订准备就绪。12.683s ... 12.882s Ingress 尚未协调。15.143s 准备发球。

创建到最新版本 'helloworld-go-yvtlp-1' 的服务 'helloworld-go' 可在以下 URL 获得:http: //helloworld-go.default.mydomain.com

  1. 这是我的服务:

kn service describe helloworld-go

名称:helloworld-go 命名空间:默认年龄:18 岁 URL: http ://helloworld-go.default.mydomain.com

修订:100% @latest (helloworld-go-yvtlp-1) [1] (18s) 图片:gcr.io/knative-samples/helloworld-go(固定到 5ea96b)

条件:OK TYPE AGE REASON ++ Ready 3s ++ ConfigurationsReady 5s ++ RoutesReady 3s

  1. 但是当我试图卷曲时,它给了我错误:

curl http://helloworld-go.default.mydomain.com -v

  • 无法解析主机:helloworld-go.default.mydomain.com
  • 关闭连接 0 curl:(6)无法解析主机:helloworld-go.default.mydomain.com

有人可以帮忙吗?