我正在关注本教程:https://kubernetes.io/docs/tasks/configure-pod-container/assign-memory-resource/
我已经创建了内存Pod演示,我试图从Pod中获取指标,但是它不起作用。
我通过克隆https://github.com/kubernetes-incubator/metrics-server
安装了指标服务器然后从顶层运行此命令:
kubectl create -f deploy/1.8+/
我正在使用kubernetes版本1.10.11。
豆荚肯定是创建的:
λ kubectl get pod memory-demo --namespace=mem-example
NAME READY STATUS RESTARTS AGE
memory-demo 1/1 Running 0 6m
但是metics命令不起作用并给出错误:
λ kubectl top pod memory-demo --namespace=mem-example
Error from server (NotFound): podmetrics.metrics.k8s.io "mem-example/memory-demo" not found
我做错了什么?
答案 0 :(得分:1)
我知道这是一个老话题,也许有人会觉得这个答案有用。
您必须签出以下仓库:
https://github.com/kubernetes-incubator/metrics-server
转到存储库的根目录并签出发行版0.3.2。
通过以下方式删除默认指标服务器:
kubectl delete -f deploy/1.8+/
下载容器Yaml
wget https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.3.6/components.yaml
通过在参数部分添加以下几行来编辑container.yaml
。您将在那里看到这两行
args:
- --kubelet-preferred-address-types=InternalIP
- --kubelet-insecure-tls=true
该文件中只有一个args参数。
部署您的pod /部署,您应该可以做到:
kubectl top pod <pod-name>
答案 1 :(得分:0)
要对度量服务器进行一些修补,以使度量正常工作。
kubectl delete -f deploy/1.8+/
wait till the metrics server gets undeployed
run the below command
kubectl create -f https://raw.githubusercontent.com/epasham/docker-repo/master/k8s/metrics-server.yaml
master $ kubectl get po -n kube-system
NAME READY STATUS RESTARTS AGE
coredns-78fcdf6894-6zg78 1/1 Running 0 2h
coredns-78fcdf6894-gk4sb 1/1 Running 0 2h
etcd-master 1/1 Running 0 2h
kube-apiserver-master 1/1 Running 0 2h
kube-controller-manager-master 1/1 Running 0 2h
kube-proxy-f5z9p 1/1 Running 0 2h
kube-proxy-ghbvn 1/1 Running 0 2h
kube-scheduler-master 1/1 Running 0 2h
metrics-server-85c54d44c8-rmvxh 2/2 Running 0 1m
weave-net-4j7cl 2/2 Running 1 2h
weave-net-82fzn 2/2 Running 1 2h
master $ kubectl top pod -n kube-system
NAME CPU(cores) MEMORY(bytes)
coredns-78fcdf6894-6zg78 2m 11Mi
coredns-78fcdf6894-gk4sb 2m 9Mi
etcd-master 14m 90Mi
kube-apiserver-master 24m 425Mi
kube-controller-manager-master 26m 62Mi
kube-proxy-f5z9p 2m 19Mi
kube-proxy-ghbvn 3m 17Mi
kube-scheduler-master 8m 14Mi
metrics-server-85c54d44c8-rmvxh 1m 19Mi
weave-net-4j7cl 2m 59Mi
weave-net-82fzn 1m 60Mi
检查并验证指标服务器部署清单中的以下几行。
command:
- /metrics-server
- --metric-resolution=30s
- --kubelet-preferred-address-types=InternalIP
- --kubelet-insecure-tls
答案 2 :(得分:0)
我遇到了类似的问题
来自服务器的错误(未找到):未找到podmetrics.metrics.k8s.io“ default / apple-app”
我遵循了两个步骤,并且能够解决该问题。
下载最新的自定义components.yaml,这是其易于部署的官方文件。
更新更改
# - /metrics-server
- --kubelet-insecure-tls
- --kubelet-preferred-address-types=InternalIP
到部署规范的命令部分。我评论了第一行,因为它是kubernetesmetrics-server使用的映像的入口点。
$ docker image inspect k8s.gcr.io/metrics-server-amd64:v0.3.6 -f {{.ContainerConfig.Entrypoint}}
[/metrics-server]
即使您是否使用它也没关系。
注意:您必须等待几秒钟才能使其正常工作。
运行此命令后,top命令将为您工作。
$ kubectl top pod apple-app
NAME CPU(cores) MEMORY(bytes)
apple-app 1m 3Mi
答案 3 :(得分:0)
在Minikube上,启用metrics-server插件后,我不得不等待20-25分钟。我在20-25分钟内遇到了相同的错误,但是稍后我可以看到输出而无需尝试任何解决方案。