问题标签 [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 回答
1367 浏览

kubernetes - 无法访问 Knative 中的私有注册表

我正在尝试将示例应用程序推送到 Knative 但是我遇到了以下错误消息:

Revision "..." failed with message: Unable to fetch image "...": unsupported status code 401; body: Not Authorized

Knative 在 EC2 上已正确设置,我已经创建了一个服务帐户和密码以从 ECR 中提取。我错过了什么?我不确定为什么 Knative 不能访问我的私有 AWS 存储库,即使 K8s(不是 Knative)能够访问。

秘密:

原生秘诀:

服务帐号:

原生配置:

0 投票
1 回答
6716 浏览

go - grpc-go over https:失败的 rpc 错误:代码 = 不可用 desc = 传输正在关闭:

注意:这是在 Kubernetes 的容器中运行的。

我已经成功地完成了这个非常简短的描述:https ://knative.dev/docs/serving/samples/grpc-ping-go/

成功:

但是,如果我在 https 的 knative 设置上从网关运行 443,它就不起作用:

示例中的客户端代码和服务器代码。服务器没有监听 tls,但是到服务器的连接是通过 https 的。

只是为了确保,我知道 https 是从一个简单的 hello-go 文本回复中磨损的。

0 投票
1 回答
9180 浏览

google-cloud-run - 如何为 GKE 上部署的 Google Cloud Run 服务增加 15 分钟的请求超时?

当前文档 ( https://cloud.google.com/run/quotas#cloud_run_limits ) 指出云运行请求允许(可配置)的最大超时为 15 分钟。

这也是对 GKE 的限制,还是可以将 GKE 和部署配置为允许 90 分钟超时?

0 投票
2 回答
505 浏览

google-cloud-platform - cloudrun(或 knative)上的简单 HelloWorld 应用程序似乎太慢了

我在 上部署了一个示例 HelloWorld 应用程序Google Cloud Run,基本上k-native,每次调用 API 最多需要 1.4 秒,以端到端的方式。应该是这样吗?

示例应用位于https://cloud.google.com/run/docs/quickstarts/build-and-deploy

我在本地主机上部署了相同的应用程序作为 docker 容器,端到端大约需要 22 毫秒。

GKE集群上的同一个应用程序端到端大约需要 150 毫秒。

我在 FaaS 方面有一点经验,我希望 API 调用会在我连续调用它们时变得更快。(如冷启动与热启动)

但无论我执行多少次命令,它都不会低于 1.4 秒。

我认为网络距离不是这里的主导因素。通过 ping 到 API 端点的往返时间只有 50 毫秒,或多或少

所以我的问题如下:

  1. 它可能是一个意外的错误吗?这是一个最终会解决的技术难题吗?或者也许没有什么问题,它只是 SLA 的k-native

  2. 如果Google Cloud Run和/或没有问题k-native,那么我的 API 调用的主要耗时因素是什么?我很想学习这个机制。


额外细节:

  • 我所在的位置:首尔/亚洲
  • 我的 Cloud Run 应用的区域:us-central1
  • 我正在测试的 Internet 连接类型:商业、有线
  • 应用的容器镜像大小:343.3MB
  • Container Registry 使用的存储桶位置:gcr.io

来自首尔/亚洲的WebPageTest(预热时间):

  • 内容类型:文本/html
  • 请求开始:0.44 秒
  • DNS 查找:249 毫秒
  • 初始连接:59 毫秒
  • SSL 协商:106 毫秒
  • 到第一个字节的时间:961 毫秒
  • 内容下载:2 毫秒

来自芝加哥/美国的WebPageTest (预热时间):

  • 内容类型:文本/html
  • 请求开始:0.171 秒
  • DNS 查找:41 毫秒
  • 初始连接:29 毫秒
  • SSL 协商:57 毫秒
  • 到第一个字节的时间:61 毫秒
  • 内容下载:3 毫秒

Cloud Run 产品经理 Steren 的回答

我们检测到从全球某些特定区域调用 Cloud Run 服务时延迟较高。可悲的是,首尔似乎就是其中之一。

0 投票
2 回答
156 浏览

kubernetes - 如何在 GKE 上将 k-native 的最小比例设置为 1?

我在 GKE 上的 k8s 集群上安装了 k-native。现在我正在使用示例 HelloWorld 应用程序运行测试。

由于我在 GKE 上运行并 24/7 为集群付费,因此将部署扩展到零并始终对第一个请求进行冷启动是没有意义的。

到目前为止我尝试过的列表

  1. Ran kubectl -n knative-serving edit cm config-autoscaler,然后将enable-scale-to-zero标志从“true”更改为“false”,正如此链接所暗示的那样
  2. 按照此链接kubectl annotate --overwrite svc helloworld-go-5jm9r autoscaling.knative.dev/minScale="1"中的说明运行
  3. 作为kubectl annotate --overwrite svc helloworld-go-5jm9r autoscaling.knative.dev/class-我自己的实验之一

不管我做了什么修改,启动服务的 HelloWorld pod 都终止了,因为没有更多的电话进来。

$ kubectl get po --watch NAME READY STATUS RESTARTS AGE helloworld-go-5jm9r-deployment-847d6fdb49-njktv 2/2 Running 0 13s helloworld-go-5jm9r-deployment-847d6fdb49-njktv 2/2 Terminating 0 96s helloworld-go-5jm9r-deployment-847d6fdb49-njktv 1/2 Terminating 0 99s helloworld-go-5jm9r-deployment-847d6fdb49-njktv 0/2 Terminating 0 118s

将 minScale 因子正确设置为 1 应该可以让 pod 永远活着,我错了吗?

人们说 setting-a-custom-minScale 选项在这里和那里都可用,但我无法使用它。我错过了什么?例如,欢迎使用具体的命令来运行。


第二次尝试:

对修订进行注释并没有使启动的 pod 保持活力……知道吗?


回答:

它是PodAutoscaler,不是服务也不是修订。

0 投票
2 回答
614 浏览

kubernetes - 部署 knative 服务时如何修复“CrashLoopBackOff”

尝试在我的 GKE 中运行 knative 服务时。Pod 给我 CrashLoopBackOff 错误。可以做些什么来解决这个问题?

0 投票
1 回答
872 浏览

linux - Knative 设置的确切系统要求是什么?为什么基本设置指南导致我资源枯竭?

我一直在尝试在我的系统上设置 Knative 开发环境。但是每次我部署 Istio 时,pilot 都处于挂起状态,我发现它是因为资源耗尽。

我遵循了 Knative 文档中的基本设置指南。即服务/blob/master/DEVELOPMENT.md

现在,如果我根据它安装和部署 istio,资源会耗尽,并且 istio-pilot 由于没有可用的节点而保持挂起状态。

如果我尝试与安装指南中给出的相同,即 https://knative.dev/docs/install/installing-istio/

它工作正常,直到后来我重新启动集群时,api-server 才停止,根据我通过搜索发现的内容,这也是由于缺乏资源。

那么 Knative 设置的具体要求是什么?

我使用的是 8 核处理器和 32GB RAM 的系统。

我分配错了吗?据我所知,我们必须为单节点 kubernetes 结构提供至少 8Gb 内存和 6 个 CPU(这就是我正在使用的)。Istio 和 Knative 部署使用的资源如何?

我检查了节点中的资源和限制,并将限制设置为 0%。

我已经尝试在 minikube 配置中限制 CPU 和 RAM,然后在启动 minikube 时使用 --cpu 和 --memory ,但输出保持不变。

Minikube 开始于:minikube start

ISTIO 部署者:

飞行员仍然待定,在描述了我们得到的吊舱后:

输出kubectl describe node nodename

设置应该已经成功,因为我也使用 RequestQuotas 和 LimitRange 设置了限制。但没有任何工作。

我在这里做错了什么?

0 投票
1 回答
281 浏览

kubernetes - 对 config-autoscaler configmap 的编辑会在应用更改后几分钟自动恢复

我正在尝试为启用了云运行插件的 Google Kubernetes Engine 集群调整自动缩放器。当我编辑 configmap 时,API 服务器接受了更改。但是,几分钟后,configmap 恢复为原始版本。有没有办法在使用云运行集群插件时调整自动缩放器?

重现步骤:

  1. 编辑配置图
  1. 检查结果:
  1. 等待几分钟,然后再次检查:

是否有我遗漏的东西,或者无法编辑管理 knative 服务自动缩放器的配置映射?如果没有,我的替代方案是什么?

0 投票
2 回答
553 浏览

google-cloud-platform - GKE 上的 Knative 无法处理某些图像,显示 RevisionMissing 错误

我在 GKE 集群上运行 Knative。Knative 网站上提供的示例图像可以工作,但是当我切换到其他一些图像时,它会停止工作。3 个容器中只有 2 个容器工作,并且路由的就绪状态保持“未知”,原因显示为“RevisionMissing”。

我尝试了多个图像,k8s.gcr.io/hpa-example 就是其中之一。

编辑:集群有一个配置类型为 n1-standard-4 的两个节点(4 个 vCPU,15 GB 内存)。我使用带有最新版本 kubernetes 的 GCP 控制台创建了这个集群,并选中了 Enable Istio 复选框。我使用以下命令安装 Knative:

谢谢

0 投票
2 回答
519 浏览

kubernetes - 在 knative 服务定义中更改公共 url

我目前正在玩 knative,并使用 gloo 和 glooctl 引导了一个简单的安装。开箱即用,一切正常。但是,我只是问自己是否有可能更改生成的 url,该服务在哪里可用。

我已经更改了域,但我想知道是否可以选择一个不包含命名空间的域名,所以helloworld-go.namespace.mydomain.com会变成helloworld-go.mydomain.com.

当前的 YAML 定义如下所示:

感谢您的帮助!