关键词:
【中文标题】指标服务器不工作:无法处理请求(获取 nodes.metrics.k8s.io)【英文标题】:Metric server not working : unable to handle the request (get nodes.metrics.k8s.io) 【发布时间】:2020-09-20 03:19:11 【问题描述】:我正在运行命令 kubectl top nodes 并收到错误:
node@kubemaster:~/Desktop/metric$ kubectl top nodes
Error from server (ServiceUnavailable): the server is currently unable to handle the request (get nodes.metrics.k8s.io)
Metric Server pod 正在使用以下参数运行:
command:
- /metrics-server
- --metric-resolution=30s
- --requestheader-allowed-names=aggregator
- --kubelet-insecure-tls
- --kubelet-preferred-address-types=InternalIP,Hostname,InternalDNS,ExternalDNS,ExternalIP
我得到的大部分答案是上述参数, 还是报错
E0601 18:33:22.012798 1 manager.go:111] unable to fully collect metrics: [unable to fully scrape metrics from source kubelet_summary:kubemaster: unable to fetch metrics from Kubelet kubemaster (192.168.56.30): Get https://192.168.56.30:10250/stats/summary?only_cpu_and_memory=true: context deadline exceeded, unable to fully scrape metrics from source kubelet_summary:kubenode1: unable to fetch metrics from Kubelet kubenode1 (192.168.56.31): Get https://192.168.56.31:10250/stats/summary?only_cpu_and_memory=true: dial tcp 192.168.56.31:10250: i/o timeout]
我已经部署了度量服务器,使用:
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.3.6/components.yaml
我错过了什么? 使用 Calico 进行 Pod 网络
在公制服务器的github页面FAQ下:
[Calico] Check whether the value of CALICO_IPV4POOL_CIDR in the calico.yaml conflicts with the local physical network segment. The default: 192.168.0.0/16.
这可能是原因。谁能给我解释一下。
我已经设置 Calico 使用: kubectl apply -f https://docs.projectcalico.org/v3.14/manifests/calico.yaml
我的节点 IP 是:192.168.56.30 / 192.168.56.31 / 192.168.56.32
我使用 --pod-network-cidr=20.96.0.0/12 启动了集群。所以我的 pods Ip 是 20.96.205.192 等等。
也在 apiserver 日志中得到这个
E0601 19:29:59.362627 1 available_controller.go:420] v1beta1.metrics.k8s.io failed with: failing or missing response from https://10.100.152.145:443/apis/metrics.k8s.io/v1beta1: Get https://10.100.152.145:443/apis/metrics.k8s.io/v1beta1: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
其中 10.100.152.145 是服务/metrics-server(ClusterIP) 的 IP
令人惊讶的是,它可以在节点 Ip 在 172.16.0.0 范围内的另一个集群上运行。 休息一切都一样。使用 kudeadm、Calico、相同的 pod cidr 进行设置
【问题讨论】:
你能离开- --kubelet-insecure-tls
和- --kubelet-preferred-address-types=InternalIP
吗?
试过但没用,
Idk 然后交配。我已经部署了 100 次指标服务器,并且总是从这个问题开始。您可以设置- --v=4
以获得更详细的日志输出。
子网 20.96.0.0/12 中的地址是公共地址,所以也许这就是它失败的原因。
【参考方案1】:
在我编辑 metrics-server 部署 yaml 配置以包含 DNS 策略后,它开始工作。
hostNetwork:真
请参考以下链接: https://www.linuxsysadmins.com/service-unavailable-kubernetes-metrics/
【讨论】:
谢谢老兄。这个答案拯救了我的一天。 不要忘记重新启动一个指标 pod ;) 在我的情况下它是需要的。【参考方案2】:Calico net 默认值为 192.168.0.0/16 yaml文件中有注释:
如果不存在,则在启动时创建的默认 IPv4 池。 Pod IP 将从这个范围中选择。安装后更改此值 不会有任何影响。这应该属于
名称:CALICO_IPV4POOL_CIDR 值:“192.168.0.0/16”--cluster-cidr
。
因此,如果您的家庭网络包含在 192.168.0.0/16 中,则最好使用其他网络。
另外,如果你使用 kubeadm,你可以在 k8s 中检查你的 cidr:
kubeadm config view | grep Subnet
或者你可以使用 kubectl:
kubectl --namespace kube-system get configmap kubeadm-config -o yaml
kubernetes "selfhosted" 中的默认值为 10.96.0.0/12
【讨论】:
【参考方案3】:我在尝试在 docker 桌面上运行指标时遇到了同样的问题,我按照 @suren 的回答进行了操作,并且成功了。 默认配置为:
- --kubelet-preferred-address-types=InternalIP,Hostname,InternalDNS,ExternalDNS,ExternalIP
然后我改为:
- --kubelet-preferred-address-types=InternalIP
【讨论】:
Kubernetes Metrics 无法获取 pod/node 指标
...正在运行一个使用3个节点和1个主节点的裸机集群在指标服务器日志中我有以下错误:E090714:29:51.7745921man 查看详情
我无法在 Node.js 中获取正文格式的请求
...inNode.js【发布时间】:2022-01-1723:12:08【问题描述】:我在服务器上接收正文格式的请求时遇到问题。我正在使用Express版本4.17.1。文档表明我不必使用body-parserer,但我可以直接使用express功能“express.json()”但是,我一直试图让它... 查看详情
使用 node.js 和 express 简单地获取请求
...,但无法弄清楚我做错了什么。我将数据从客户端发布到服务器没有问题,但反过来我无法让它工作。我在客户中得到的唯一回复是ReadableByteStream。这是我在客户端上的代码:exportfunctiongetAll 查看详情
localhost 页面不工作 localhost 当前无法处理此请求。 HTTP 错误 500
】localhost页面不工作localhost当前无法处理此请求。HTTP错误500【英文标题】:Thelocalhostpageisn’tworkinglocalhostiscurrentlyunabletohandlethisrequest.HTTPERROR500【发布时间】:2017-03-0603:11:29【问题描述】:当我看到这个页面时,我知道有一些500I... 查看详情
无法从 Prometheus HTTP Server 获取查询或 JSON 密钥
...时间】:2021-10-0314:49:04【问题描述】:我想从PrometheusHTTP服务器获取某个指标:zcash_difficulty_gauge,但我遇到了以下错误:i)JSON不可用ii)请求URL不返回指标,而是返回整个指标页面。我的 查看详情
Codeigniter:此页面不工作 localhost 当前无法处理此请求。 HTTP 错误 500 [关闭]
】Codeigniter:此页面不工作localhost当前无法处理此请求。HTTP错误500[关闭]【英文标题】:Codeigniter:Thispageisn’tworkinglocalhostiscurrentlyunabletohandlethisrequest.HTTPERROR500[closed]【发布时间】:2018-01-0413:46:48【问题描述】:我正在做一件简单... 查看详情
无法在 Node.js res.body 中获取 $http.post 请求数据
...js0.12.2。我正在使用访问node.jsapi$http.post("url",request_data)在服务器端使用这个:conso 查看详情
无法处理 executeFetchRequest 错误
...发布时间】:2012-03-0119:25:18【问题描述】:我的获取请求工作正常,我获取的对象没有任何问题。我想要做的是在实体不存在的情况下处理错误。问题是,我无法处理该错误,因为当我调用executeFetechRequest:error:withoutanywarnings时应... 查看详情
Node.js 中的异步编程不应该导致 *** 吗?
...问题描述】:我刚刚意识到(单线程)Node.js存在问题:服务器开始响应请求,并且请求一直运行直到它因为I/O而阻塞。当请求处理器阻塞时,服务器会启动并返回到第1步,处理更多请求。每当请求处理器阻塞I/O时,服务器都会... 查看详情
node.js http获取请求参数[重复]
...想处理这样的HTTP请求:GEThttp://1.2.3.4/status?userID=1234但我无法从中提取参数userID。我正在使用Express,但它对我没有帮助。例如,当我写如下内容时,它不起作用:app.get(\' 查看详情
node.js 服务器无需请求即可获取主机名
】node.js服务器无需请求即可获取主机名【英文标题】:node.jsservergethostnamewithoutreq【发布时间】:2015-11-1005:09:59【问题描述】:目前我使用req.headers.host来确定服务器的主机名,在处理服务器收到的请求时有效。但是如何在没有请... 查看详情
node学习01:node知识点汇总!
...器访问网站全过程Web开发本质请求:客户端发起请求.处理:服务器处理请求.响应:服务器将处理结果发送给客户端.Web应用程序与桌面应用程序对比(计算器案例)关于C/S(Client/Server)和B/S(Browser/Server)[外... 查看详情
node.js - 获取 json 请求的值
...son数据的值?我尝试了很多示例和问答,但仍然无法正常工作。我对node.js完全陌生,所以我的问题可能很愚蠢。我在下面得到了我的代码。请指出我在哪里以及出了什么问题。我完全迷路了。我需要的是来自json数据的值“ 查看详情
此页面无法正常工作 www.janmukti.com 目前无法处理此请求。 HTTP 错误 500
...13:38:09【问题描述】:这是我第一次将我的laravel项目放入服务器。我在主目录中创建了一个laravel目录,并将我项目的 查看详情
如何从指标服务器获取网络信息
】如何从指标服务器获取网络信息【英文标题】:Howtogetnetworkinformationfrommetricsserver【发布时间】:2021-01-2810:02:46【问题描述】:我知道如何从metrics-server获取cpu和内存的信息(限制、请求、使用情况)。但我不知道如何从metrics-s... 查看详情
Node.js(Express API):req.body.myobject 未定义且无法正常工作
...2015-10-0413:22:26【问题描述】:我在NodeJS(ExpressJS)中有我的服务器端,它实现了一个POST方法,该方法应该获取我从客户端发送的对象并对其进行处理:router 查看详情
无法在 Windows Kubernetes 节点上获取 cAdvisor 容器指标
】无法在WindowsKubernetes节点上获取cAdvisor容器指标【英文标题】:CannotobtaincAdvisorcontainermetricsonWindowsKubernetesnodes【发布时间】:2020-06-2721:37:39【问题描述】:我已经配置了一个混合节点Kubernetes集群。两个工作节点是UnbuntuServer18.04.... 查看详情
如何在node.js服务器流式http请求中处理JSON流响应数组
】如何在node.js服务器流式http请求中处理JSON流响应数组【英文标题】:HowtoprocessArrayofJSONStreamResponseinnode.jsserverstreaminghttpresquest【发布时间】:2021-10-1218:39:22【问题描述】:流响应的形式为["id":0,"name":name0,"id":1,"name":name1]如果我使... 查看详情