问题标签 [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 中的私有注册表
我正在尝试将示例应用程序推送到 Knative 但是我遇到了以下错误消息:
Revision "..." failed with message: Unable to fetch image "...": unsupported status code 401; body: Not Authorized
Knative 在 EC2 上已正确设置,我已经创建了一个服务帐户和密码以从 ECR 中提取。我错过了什么?我不确定为什么 Knative 不能访问我的私有 AWS 存储库,即使 K8s(不是 Knative)能够访问。
秘密:
原生秘诀:
服务帐号:
原生配置:
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 文本回复中磨损的。
google-cloud-run - 如何为 GKE 上部署的 Google Cloud Run 服务增加 15 分钟的请求超时?
当前文档 ( https://cloud.google.com/run/quotas#cloud_run_limits ) 指出云运行请求允许(可配置)的最大超时为 15 分钟。
这也是对 GKE 的限制,还是可以将 GKE 和部署配置为允许 90 分钟超时?
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 毫秒,或多或少
所以我的问题如下:
它可能是一个意外的错误吗?这是一个最终会解决的技术难题吗?或者也许没有什么问题,它只是 SLA 的
k-native
?如果
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 服务时延迟较高。可悲的是,首尔似乎就是其中之一。
kubernetes - 如何在 GKE 上将 k-native 的最小比例设置为 1?
我在 GKE 上的 k8s 集群上安装了 k-native。现在我正在使用示例 HelloWorld 应用程序运行测试。
由于我在 GKE 上运行并 24/7 为集群付费,因此将部署扩展到零并始终对第一个请求进行冷启动是没有意义的。
到目前为止我尝试过的列表
- Ran
kubectl -n knative-serving edit cm config-autoscaler
,然后将enable-scale-to-zero
标志从“true”更改为“false”,正如此链接所暗示的那样 - 按照此链接
kubectl annotate --overwrite svc helloworld-go-5jm9r autoscaling.knative.dev/minScale="1"
中的说明运行 - 作为
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
,不是服务也不是修订。
kubernetes - 部署 knative 服务时如何修复“CrashLoopBackOff”
尝试在我的 GKE 中运行 knative 服务时。Pod 给我 CrashLoopBackOff 错误。可以做些什么来解决这个问题?
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 设置了限制。但没有任何工作。
我在这里做错了什么?
kubernetes - 对 config-autoscaler configmap 的编辑会在应用更改后几分钟自动恢复
我正在尝试为启用了云运行插件的 Google Kubernetes Engine 集群调整自动缩放器。当我编辑 configmap 时,API 服务器接受了更改。但是,几分钟后,configmap 恢复为原始版本。有没有办法在使用云运行集群插件时调整自动缩放器?
重现步骤:
- 编辑配置图
- 检查结果:
- 等待几分钟,然后再次检查:
是否有我遗漏的东西,或者无法编辑管理 knative 服务自动缩放器的配置映射?如果没有,我的替代方案是什么?
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:
谢谢
kubernetes - 在 knative 服务定义中更改公共 url
我目前正在玩 knative,并使用 gloo 和 glooctl 引导了一个简单的安装。开箱即用,一切正常。但是,我只是问自己是否有可能更改生成的 url,该服务在哪里可用。
我已经更改了域,但我想知道是否可以选择一个不包含命名空间的域名,所以helloworld-go.namespace.mydomain.com
会变成helloworld-go.mydomain.com
.
当前的 YAML 定义如下所示:
感谢您的帮助!