minikube metrics-server pod 错误

启动 minikube addons enable metrics-server 之后查看 metrics-server pod 会有如下错误

Failed to pull image "k8s.gcr.io/metrics-server-amd64:v0.5.2": rpc error: code = Unknown desc = Error response from daemon: Get https://k8s.gcr.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

这个错误是k8s.gcr.io已经废弃无法访问,需要替换成在国内的镜像,可以使用阿里云的。

registry.cn-hangzhou.aliyuncs.com/google_containers

完整镜像地址。

registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-server-amd64:v0.5.2

进入 minikube docker 手动pull镜像。

minikube ssh
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-server-amd64:v0.5.2

为了让metrics-server-deployment能工作需要手动打个tag并且让pod拉取镜像的规则设置成IfNotPresent。

docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-server:v0.5.2 k8s.gcr.io/metrics-server/metrics-server:v0.5.2

如果不做这一步,也可以手动修改deployment image地址,但是这样比较麻烦。

修改镜像拉取规则

 imagePullPolicy: IfNotPresent

手动安装 metrics-server

如果你本地有其他错误,我建议直接关掉minikube metrics-server addons。自行安装metrics-server。

minikube addons disable metrics-server

拉取metrics-server manifast

git://github.com/kubernetes-incubator/metrics-server.git

manifast文件metrics-server/manifests/base/deployment.yaml

(注意,手动安装前还需要像第一节介绍的那样,手动拉取镜像、修改imagePullPolicy模式。)

可能会出现类似 heapster 之类错误。

Error from server (NotFound): the server could not find the requested resource (get services http:heapster:)

(注意:heapster模式的测量机制在k8s 1.6之后已经不再使用。需要手动打开控制器管理器hpa-rest拉取测量指标。)

但是minikube controller-manager需要在启动的时候设置。

kube-system   kube-controller-manager-minikube   1/1     Running   5          2d13h

启动metrics-server测量。

minikube start --extra-config 'controller-manager.horizontal-pod-autoscaler-use-rest-clients=true'

hpa 错误

创建hpa

k autoscale deployment kubia --cpu-percent=30 --min=1 --max=5

查看hpa状态 k get hpa

kubia   Deployment/kubia   <unknown>/30%          1         5         5          2d12h

查看详情 k describe hpa kubia

the HPA was unable to compute the replica count: failed to get cpu utilization: unable to get metrics for resource cpu: no metrics returned from resource metrics API

其实这里的日志是说已经能正常拉取pod的测量,虽然没有任何返回,但是不影响使用,我们做个测试。

创建一个应用程序。

apiVersion: apps/v1
kind: Deployment
metadata:
name: kubia
labels:
app: kubia
spec:
selector:
matchLabels:
app: kubia
replicas: 3
template:
metadata:
labels:
app: kubia
spec:
containers:
- image: luksa/kubia:v1
name: kubia
resources:
requests:
cpu: 100m

映射一个请求端口。

k expose deployment kubia --port=80 --target-port=8080

监控HPA

watch kubectl get hpa

NAME    REFERENCE          TARGETS         MINPODS   MAXPODS   REPLICAS   AGE
kubia Deployment/kubia <unknown>/30% 1 5 3 2m34s

kubia 程序默认是3个副本。

在另外一个pod中循环调用应用程序。

k run -it --rm --restart=Never loadgenerator --image=busybox -- sh -c "while true; do wget -O -q http://kubia.default; done"
NAME    REFERENCE          TARGETS         MINPODS   MAXPODS   REPLICAS   AGE
kubia Deployment/kubia 51%/30% 1 5 3 3m53s

hpa生效了,我们看下describe。

NAME    REFERENCE          TARGETS         MINPODS   MAXPODS   REPLICAS   AGE
kubia Deployment/kubia 30%/30% 1 5 5 5m12

图1

HPA-Autoscaler 识别到CPU测量值,已经完成弹性扩容。SuccessfulRescale。

相关版本

minikube version: v1.16.0
Client Version: version.Info{Major:"1", Minor:"14", GitVersion:"v1.14.9"}
Server Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.0"}

最新文章

  1. [转载]Linux Bond的原理及其不足
  2. 分享一个简单程序(webApi+castle+Automapper+Ef+angular)
  3. Apache Nutch v2.3 发布,Java实现的网络爬虫
  4. 通过adb命令打印log
  5. ios检测是否有网络
  6. IOS Suppot Font 苹果默认支持的字体一览2(普通,加粗,倾斜)
  7. ASP.NET服务器控件数据绑定总结
  8. PO_PO系列 - 收货管理分析(案例)
  9. C++ 遇见的一些函数
  10. Boost编程之获取可执行文件的当前路径
  11. js实现的对象数组根据对象的键值进行排序代码
  12. Oracle EBS-SQL (WIP-3):检查非标任务子件没选MRP净值.sql
  13. C#路径,文件,目录,I/O常见操作
  14. 基于visual Studio2013解决算法导论之029二叉搜索树
  15. ORACLE:plsql优化
  16. css的transform属性让子元素在父元素里面垂直水平居中
  17. 在Linux CentOS6系统中安装开源CMS程序OpenCart的教程
  18. Win10系统总是提示&quot;在商店中查找应用&quot;的关闭方法
  19. 菜鸟系列docker——docker镜像下(5)
  20. python的dir()和__dict__属性的区别

热门文章

  1. 001.AD域控简介及使用
  2. Python基础(序列化)
  3. 菜鸡的Java笔记 第十 - java 类与对象
  4. 第二次SQLServer试验解
  5. [loj3342]制作菜品
  6. I.MX启动方式和头部
  7. Redis 源码简洁剖析 02 - SDS 字符串
  8. springboot增加多端口管理
  9. 群晖ping自动关机
  10. Codeforces 639E - Bear and Paradox(二分+贪心)