问题标签 [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.
go - Knative 安全性 - 无法使用 gRPC 创建安全的 TLS 连接
我需要与 Knative 建立安全连接。
尝试了一百万,并在我的头顶 - 以下场景:
如果你有任何使用 TLS 或 http(s) 的东西,或者知道有谁有,我非常想知道?
提前致谢
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 服务时延迟较高。可悲的是,首尔似乎就是其中之一。
google-kubernetes-engine - 错误:无法识别“k8s\\service.yaml”:serving.knative.dev/ 没有匹配项,Kind=Service
尝试在 GKE 上将我的 service.yaml 文件部署为 knative 服务时,它会引发错误:
我错过了什么吗?
我的 service.yaml:
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
,不是服务也不是修订。
istio - 将微服务转换为 Knative
Knative 目前处于 alpha 阶段。我需要开发一个服务,这样当 knative 发布时,转换就很简单了。
哪种类型的 Kubernetes 部署服务最容易转换为 knative?我也将利用 Istio。所以只是想让这个尽可能简单。(还有关于何时发布 knative 或我应该在哪里查看该信息的任何估计)。
kubernetes - 访问 Cloud Run on GKE 服务的奇怪方式
我正在按照本教程执行所谓的快速入门,gcp
并cloud run
对其进行一些试验。
除了宣布的和典型的服务可用性存在一些延迟和不一致之外,脚本步骤进展顺利。
我想问的是为什么(找不到任何文档或解释),为了让我访问服务,我需要传递给相关教程所示curl
的特定标头:Host
YOUR-IP
istio 管理的入口网关创建的负载均衡器的公共 IP 在哪里
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),但当我尝试构建和推送我的应用程序时它仍然失败。因此,当我应用以下构建时:
构建失败,我在日志中收到错误:
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 文件是:
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 是:
kubernetes - 无法使用 gitlabktl 进行部署
我一直在尝试让一个简单的无服务器 ci/cd 工作。
在解决了很多问题并查看了gitlabktl
代码(https://gitlab.com/gitlab-org/gitlabktl)之后,我设法得到了这个配置:
但是,由于我不断收到此错误,我无法取得任何进一步的进展: