首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用堆从“`kubectl top”获取ServiceUnavailable

用堆从“`kubectl top”获取ServiceUnavailable
EN

Stack Overflow用户
提问于 2019-03-11 14:34:57
回答 1查看 916关注 0票数 1

我有一个被管理的kubernetes设置,称为集群容器引擎(CCE),在中。他们的文档可以找到在线

我的CCE有一个主节点和三个节点,它们运行k8s版本的1.9.2 (下面是更详细的信息)。我可以通过kubectl访问CCE,并在其上部署新的吊舱。

CCE预装了heapster的部署。但是,试图检查节点资源使用情况失败(我可以观察到对pod使用的相同影响):

代码语言:javascript
复制
$ kubectl top pods
Error from server (ServiceUnavailable): the server is currently unable to handle the request (get services http:heapster:)

我已经尝试了所有我能想到的调试步骤(见下面),但在修复这个问题上我仍然迷失了方向。有什么建议吗?

存在用于deploymentpodserviceheapster项(输出过滤为只包含heapster):

代码语言:javascript
复制
$ kubectl get po -n kube-system
NAME                                  READY   STATUS    RESTARTS   AGE
heapster-apiserver-84b844ffcf-lzh4b   1/1     Running   0          47m

$  kubectl get svc -n kube-system
NAME                     TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                                  AGE
heapster                 ClusterIP   10.247.150.244   <none>        80/TCP                                   19d

$ kubectl get deploy -n kube-system
NAME                 READY   UP-TO-DATE   AVAILABLE   AGE
heapster-apiserver   1/1     1            1           19d

为了检查heapster是否确实正确地收集了度量,我将ssh放入其中一个节点并执行:

代码语言:javascript
复制
$ curl -k http://10.247.150.244:80/api/v1/model/metrics/              
[
  "cpu/usage_rate",
  "memory/usage",
  "cpu/request",
  "cpu/limit",
  "memory/request",
  "memory/limit"
 ]

Pod测井输出

最后,我检查了来自heapster-apiserver-84b844ffcf-lzh4b荚的日志输出:

代码语言:javascript
复制
$ kubectl logs -n kube-system heapster-apiserver-84b844ffcf-lzh4b
I0311 13:38:18.334525       1 heapster.go:78] /heapster --source=kubernetes.summary_api:''?kubeletHttps=true&inClusterConfig=false&insecure=true&auth=/srv/config --api-server --secure-port=6443
I0311 13:38:18.334718       1 heapster.go:79] Heapster version v1.5.3
I0311 13:38:18.340912       1 configs.go:61] Using Kubernetes client with master "https://192.168.1.228:5443" and version <nil>
I0311 13:38:18.340996       1 configs.go:62] Using kubelet port 10255
I0311 13:38:18.358918       1 heapster.go:202] Starting with Metric Sink
I0311 13:38:18.510751       1 serving.go:327] Generated self-signed cert (/var/run/kubernetes/apiserver.crt, /var/run/kubernetes/apiserver.key)
E0311 13:38:18.540860       1 heapster.go:128] Could not create the API server: missing clientCA file
I0311 13:38:18.558944       1 heapster.go:112] Starting heapster on port 8082

集群信息

代码语言:javascript
复制
$ kubectl version
Client Version: version.Info{Major:"1", Minor:"13", GitVersion:"v1.13.3", GitCommit:"721bfa751924da8d1680787490c54b9179b1fed0", GitTreeState:"clean", BuildDate:"2019-02-01T20:08:12Z", GoVersion:"go1.11.5", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"9+", GitVersion:"v1.9.2-CCE2.0.7-B003", GitCommit:"302f471a1e2caa114c9bb708c077fbb363aa2f13", GitTreeState:"clean", BuildDate:"2018-06-20T03:27:16Z", GoVersion:"go1.9.2", Compiler:"gc", Platform:"linux/amd64"}

$ kubectl get nodes
192.168.1.163   Ready    worker       19d   v1.9.2-CCE2.0.7-B003
192.168.1.211   Ready    nfs-server   19d   v1.9.2-CCE2.0.7-B003
192.168.1.227   Ready    worker       19d   v1.9.2-CCE2.0.7-B003

所有节点都使用EulerOS_2.0_SP2和内核版本3.10.0-327.59.59.46.h38.x86_64

EN

回答 1

Stack Overflow用户

发布于 2019-03-11 14:51:11

代码语言:javascript
复制
I0311 13:38:18.510751       1 serving.go:327] Generated self-signed cert (/var/run/kubernetes/apiserver.crt, /var/run/kubernetes/apiserver.key)

您的API服务器似乎运行在HTTP上,但是heapster配置了https url。您需要设置--source参数以覆盖Kubernetes主程序,如所描述的这里

代码语言:javascript
复制
--source=kubernetes:http://master-ip?inClusterConfig=false&useServiceAccount=true&auth=

顺便说一句: heapster已经被废弃了,建议改用度量服务器

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55104237

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档