问题标签 [knative]

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 投票
0 回答
123 浏览

go - Knative 安全性 - 无法使用 gRPC 创建安全的 TLS 连接

我需要与 Knative 建立安全连接。

尝试了一百万,并在我的头顶 - 以下场景:

如果你有任何使用 TLS 或 http(s) 的东西,或者知道有谁有,我非常想知道?

提前致谢

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 投票
0 回答
329 浏览

google-kubernetes-engine - 错误:无法识别“k8s\\service.yaml”:serving.knative.dev/ 没有匹配项,Kind=Service

尝试在 GKE 上将我的 service.yaml 文件部署为 knative 服务时,它会引发错误:

原生错误

我错过了什么吗?

我的 service.yaml:

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 投票
1 回答
88 浏览

istio - 将微服务转换为 Knative

Knative 目前处于 alpha 阶段。我需要开发一个服务,这样当 knative 发布时,转换就很简单了。

哪种类型的 Kubernetes 部署服务最容易转换为 knative?我也将利用 Istio。所以只是想让这个尽可能简单。(还有关于何时发布 knative 或我应该在哪里查看该信息的任何估计)。

0 投票
3 回答
250 浏览

kubernetes - 访问 Cloud Run on GKE 服务的奇怪方式

我正在按照教程执行所谓的快速入门,gcpcloud run对其进行一些试验。

除了宣布的和典型的服务可用性存在一些延迟和不一致之外,脚本步骤进展顺利。

我想问的是为什么(找不到任何文档或解释),为了让我访问服务,我需要传递给相关教程所示curl的特定标头:Host

YOUR-IPistio 管理的入口网关创建的负载均衡器的公共 IP 在哪里

0 投票
0 回答
686 浏览

kubernetes - Knative 映像构建和推送失败,访问被拒绝

我正在尝试使用 Knative 构建和推送 docker 映像。我有一个 Maven Java 应用程序和一个Dockerfile构建和运行该应用程序的多阶段:

我想构建应用程序并将其推送到 gcr 存储库。所以我有一个ServiceAccount和一个Build

我试着用kaniko-project这个。但是,使用它存在一些问题。版本0.1.0适用于简单的Dockerfile

但不支持Dockerfile访问被拒绝错误的 multistaging s 和 fils。任何其他版本的kaniko都不起作用,并且失败。在多阶段构建的 0.1.0 版本的日志中,我可以看到以下错误:2019/07/02 14:43:13 No matching credentials found for index.docker.io, fall back on anonymous time="2019-07 -02T14:43:15Z" level=info msg="保存依赖项 []" time="2019-07-02T14:43:15Z" level=error msg="复制失败:未指定源文件"

和构建的状态:

对于kaniko高于 0.1.0 的任何其他版本,这是错误:

同样在日志中有类似的东西:

我在他们的回购中发现了一个问题,该问题已关闭。但是,它仍然可以重现。这是github问题

我可以确认我ServiceAccount的做法是正确的,因为我能够使用此配置构建和推送一个简单的 docker 映像。我还尝试了不同的图像来构建和推送。例如这里描述的那个。即使我已经按照那里描述的所有步骤进行操作(按照说明创建我ServiceAccount的说明,它适用于一个简单的 Dockerfile),但当我尝试构建和推送我的应用程序时它仍然失败。因此,当我应用以下构建时:

构建失败,我在日志中收到错误:

0 投票
1 回答
202 浏览

c - Pods 处于 CrashLoopBackOff 中,并且基于 C 的应用程序的就绪探测失败

我有一个带有两个工作节点的 knative 设置。成功测试helloworld-go示例程序后。我试图编写一个简单的 C 程序,它只打印环境变量“REQUEST_METHOD”和“QUERY_STRING”。但是 pod 状态为“CrashLoopBackOff”,并且 kubectl describe 显示:“Readiness probe failed: Get http://192.168.203.181:8022/health : net/http: request cancelled (Client.Timeout exceeded while waiting headers)”。我怀疑我的代码有问题。如果可能,请建议我的代码有什么问题。我使用的 Dockerfile 是这样的:

我的 C 代码是:

我的 yaml 文件是:

0 投票
1 回答
1000 浏览

docker - kubectl 日志显示 'standard_init_linux.go:211: exec 用户进程导致“没有这样的文件或目录”'

我正在尝试为 knative 服务创建一个 containerSource。当我对图像使用 docker run 时,它会给出输出(“或代码中的错误”)。但是,当我应用 yaml 文件时,kubectl 日志显示“standard_init_linux.go:211:exec 用户进程导致“没有这样的文件或目录”。docker run 显示它能够找到 exec 文件。所以我无法理解出了什么问题。有人请指导我。

我的 yaml 文件:

我的 dockerimage 代码是:

而 Dockerfile 是:

0 投票
0 回答
146 浏览

kubernetes - 无法使用 gitlabktl 进行部署

我一直在尝试让一个简单的无服务器 ci/cd 工作。

在解决了很多问题并查看了gitlabktl代码(https://gitlab.com/gitlab-org/gitlabktl)之后,我设法得到了这个配置:

但是,由于我不断收到此错误,我无法取得任何进一步的进展: