Skaffold没有完全运行所有服务 [英] Skaffold is not fully running all the services

查看:25
本文介绍了Skaffold没有完全运行所有服务的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在开发this dummy project,并尝试通过Skaffold使其在本地工作。

我的项目中有3个服务(分别在端口300130023003上运行),通过NATS server连接。

问题是:我每次运行skaffold debug时都收到不同类型的错误,并且一个/多个服务无法工作。

有时,我没有收到任何错误,并且所有服务都按预期工作。以下是一些错误:

Waited for <...>s due to client-side throttling, not priority and fairness,
request: GET:https://kubernetes.docker.internal:6443/api/v1/namespaces/default/pods?labelSelector=app%!D(MISSING). <...>%!C(MISSING)app.kubernetes.io%!F(MISSING)managed-by%!D(MISSING)skaffold%!C(MISSING)skaffold.dev%!F(MISSING)run-id%!D(MISSING)<...>` (from `request.go:668`)
- `0/1 nodes are available: 1 Insufficient cpu.` (from deployments)
- `UnhandledPromiseRejectionWarning: NatsError: CONNECTION_REFUSED` (from apps)
- `UnhandledPromiseRejectionWarning: Error: getaddrinfo EAI_AGAIN nats-service` (from apps)

我不知所措,再也忍不住了。我希望这里有人能帮助我。

提前感谢。

PS:下面是我的计算机的配置,以防是我的计算机的故障。

Processor: AMD Ryzen 7 1700 (8C/16T)
Memory: 2 x 8GB DDR4 2667MHz
Graphics: AMD Radeon RX 590 (8GB)
OS: Windows 10 Pro 21H1
$ docker version
Client:
 Version:           19.03.12
 API version:       1.40
 Go version:        go1.13.12
 Git commit:        0ed913b8-
 Built:             07/28/2020 16:36:03
 OS/Arch:           windows/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          20.10.8
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.16.6
  Git commit:       75249d8
  Built:            Fri Jul 30 19:52:10 2021
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.4.9
  GitCommit:        e25210fe30a0a703442421b0f60afac609f950a3
 runc:
  Version:          1.0.1
  GitCommit:        v1.0.1-0-g4144b63
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0
$ kubectl version
Client Version: version.Info{Major:"1", Minor:"22", GitVersion:"v1.22.2", GitCommit:"8b5a19147530eaac9476b0ab82980b4088bbc1b2", GitTreeState:"clean", BuildDate:"2021-09-15T21:38:50Z", GoVersion:"go1.16.8", Compiler:"gc", Platform:"windows/amd64"}
Server Version: version.Info{Major:"1", Minor:"21", GitVersion:"v1.21.4", GitCommit:"3cce4a82b44f032d0cd1a1790e6d2f5a55d20aae", GitTreeState:"clean", BuildDate:"2021-08-11T18:10:22Z", GoVersion:"go1.16.7", Compiler:"gc", Platform:"linux/amd64"}

我使用WSL2(Debian),docker-desktop是Kubernetes的上下文。

推荐答案

出现此类问题的主要原因是您正在设置only CPU limit (without setting CPU request) so Kubernetes automatically assigns a CPU request which is equal to the CPU limit

如果您为Container指定了CPU限制,但没有指定CPU请求,Kubernetes会自动分配一个与该限制匹配的CPU请求。同样,如果容器指定了自己的内存限制,但没有指定内存请求,则Kubernetes会自动分配与该限制匹配的内存请求。

因此,由于请求等于限制,您的节点无法满足这些要求(您有16个CPU可用;要启动所有服务,您需要24个CPU)-这就是您收到0/1 nodes are available: 1 Insufficient cpu错误消息的原因。

如何修复?

但是.

您写的是:

我是否也应该尝试设置requests键并设置下限?或者完全省略它呢? 我试过那个,还是有同样的问题。

因此,如果您从所有部署中删除了所有CPU限制,但仍然出现与CPU不足相关的错误,这显然表明您的应用程序太耗费资源了。我建议从资源利用率的角度优化应用程序。另一个选项是增加节点资源。

这篇关于Skaffold没有完全运行所有服务的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆