minikube metrics-server HPA 自动扩缩容错误
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"}
minikube metrics-server HPA 自动扩缩容错误的更多相关文章
- 三十三、HPA实现自动扩缩容
通过HPA实现业务应用的动态扩缩容 HPA控制器介绍 当系统资源过高的时候,我们可以使用如下命令来实现 Pod 的扩缩容功能 $ kubectl -n luffy scale deployment m ...
- Knative 基本功能深入剖析:Knative Serving 自动扩缩容 Autoscaler
Knative Serving 默认情况下,提供了开箱即用的快速.基于请求的自动扩缩容功能 - Knative Pod Autoscaler(KPA).下面带你体验如何在 Knative 中玩转 Au ...
- 通过Dapr实现一个简单的基于.net的微服务电商系统(十一)——一步一步教你如何撸Dapr之自动扩/缩容
上一篇我们讲到了dapr提供的bindings,通过绑定可以让我们的程序轻装上阵,在极端情况下几乎不需要集成任何sdk,仅需要通过httpclient+text.json即可完成对外部组件的调用,这样 ...
- Marathon自动扩缩容(marathon-lb-autoscale)
我们在服务里面创建如下的应用(以下是创建完复制过来的json): { "id": "/nginxtest", "cmd": null, &q ...
- 【六】K8s-Pod 水平自动扩缩实践(简称HPA)
一.概述 Pod 水平自动扩缩(Horizontal Pod Autoscaler)简称 HPA,HPA 可以根据 CPU 利用率进行自动伸缩 Pod 副本数量,除了 CPU 利用率,也可以基于其他应 ...
- 13.深入k8s:Pod 水平自动扩缩HPA及其源码分析
转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com 源码版本是1.19 Pod 水平自动扩缩 Pod 水平自动扩缩工作原理 Pod 水平自动 ...
- 如何根据不同业务场景调节 HPA 扩缩容灵敏度
背景 在 K8s 1.18 之前,HPA 扩容是无法调整灵敏度的: 对于缩容,由 kube-controller-manager 的 --horizontal-pod-autoscaler-downs ...
- Kubernetes 监控:Prometheus Adpater =》自定义指标扩缩容
使用 Kubernetes 进行容器编排的主要优点之一是,它可以非常轻松地对我们的应用程序进行水平扩展.Pod 水平自动缩放(HPA)可以根据 CPU 和内存使用量来扩展应用,前面讲解的 HPA 章节 ...
- Airbnb的动态kubernetes集群扩缩容
Airbnb的动态kubernetes集群扩缩容 本文介绍了Airbnb的集群扩缩容的演化历史,以及当前是如何通过Cluster Autoscaler 实现自定义扩展器的.最重要的经验就是Airbnb ...
随机推荐
- 12组-Alpha冲刺-2/6
一.基本情况 队名:字节不跳动 组长博客:https://www.cnblogs.com/147258369k/p/15535639.html 小组人数:10人 二.冲刺概况汇报 侯钦凯 过去两天完成 ...
- FZU ICPC 2020 寒假阶段测试 2
P1464 Function 题目描述 对于一个递归函数w(a,b,c)如果a≤0 or b≤0 or c≤0就返回值1.如果a>20 or b>20 or c>20就返回w(20, ...
- 多云搭建 K3S 集群
作者:SRE运维博客 博客地址: https://www.cnsre.cn/ 文章地址:https://www.cnsre.cn/posts/211119132529/ 相关话题:https://ww ...
- jpg与jpeg的区别在哪
JPG文件的优点是体积小巧,并且兼容性好,因为大部分的程序都能读取这种文件,这是因为JPG格式不仅是一个工业标准格式,而且更是web的标准文件格式.JPG文件如此拥有如此便利的条件,难怪得到了业余玩家 ...
- [cf10E]Greedy Change
对于$w$的表示方案,可以用序列描述,即$x_{i}$表示第$i$种货币的数量 贪心策略得到的方案即是(对应序列)字典序最大的方案,并定义最优策略得到的方案为在最小化货币总数的基础上,(对应序列)字典 ...
- [bzoj1982]Moving Pebbles
首先发现当n堆石子可以两两配对时,后手必胜,因为后手可以模仿先手那么当n堆石子不能两两配对时,先手必胜,因为先手可以做到让其两两配对,然后即先手必胜 这个东西用map维护即可 1 #include&l ...
- FastAPI(六十三)实战开发《在线课程学习系统》梳理系统需要接口
针对上一篇FastAPI(六十二)实战开发<在线课程学习系统>需求分析需求的功能,我们对需要的接口进行梳理,大概的规划出来现有的接口,作为我们第一版的接口的设计出版,然后我们根据设计的接口 ...
- 小程序嵌套H5的方式和技巧(一)
文章内多次使用了关键字"壳",首先先解释一下什么是壳 壳: 小程序由原生的web-view组件形成的页面,页面只包含技术逻辑(如打开H5页面),不包含具体业务接口请求和业务逻辑处理 ...
- vue使用axios读取本地json文件来显示echarts折线图
编辑器:HBuilderx axios文档:http://www.axios-js.com/zh-cn/docs/ echarts实例:https://echarts.apache.org/examp ...
- 洛谷 P3266 - [JLOI2015]骗我呢(容斥原理+组合数学)
题面传送门 神仙题. 首先乍一看此题非常棘手,不过注意到有一个条件 \(0\le x_{i,j}\le m\),而整个矩阵恰好有 \(m\) 列,这就启发我们考虑将每个元素的上下界求出来,如果我们第一 ...