java系统找不到指定文件怎么解决
287
2022-10-23
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 net/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 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
查看详情 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
监控HPAwatch kubectl get hpa
NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE
kubia Deployment/kubia
kubia 程序默认是3个副本。在另外一个pod中循环调用应用程序。
k run -it --rm --restart=Never loadgenerator --image=busybox -- sh -c "while true; do wget -O -q 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
相关版本
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"}
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~