ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Kubernetes学习笔记八:Metrics Server和HPA

2022-02-20 18:00:23  阅读:383  来源: 互联网

标签:metrics k8s name Kubernetes kubectl myngx server Metrics Server


部署APIService
apiVersion: apiregistration.k8s.io/v1
kind: APIService
metadata:
  name: v1beta1.metrics.k8s.io
spec:
  service:
    name: metrics-server
    namespace: kube-system
  group: metrics.k8s.io
  version: v1beta1
  insecureSkipTLSVerify: true
  groupPriorityMinimum: 100
  versionPriority: 100

kubectl get apiservices.apiregistration.k8s.io | grep kube-system
在这里插入图片描述

部署metrics server

metrics-server release github地址

wget https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.3.6/components.yaml

kubectl apply -f components.yaml

遇到问题:Failed to pull image “k8s.gcr.io/metrics-server-amd64:v0.3.6”: 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)
无法拉取镜像。
在这里插入图片描述
一开始我使用的版本是scofield/metrics-server:v0.3.6,v0.3.6无法拉取镜像,然后改成v0.3.7就可以了。

- name: metrics-server
  image: scofield/metrics-server:v0.3.7
  imagePullPolicy: IfNotPresent
  args:
    - --cert-dir=/tmp
    - --secure-port=4443
    - /metrics-server
    - --kubelet-insecure-tls
    - --kubelet-preferred-address-types=InternalIP

在这里插入图片描述
在这里插入图片描述
kubectl get pods -n kube-system|grep metrics
kubectl top nodes
在这里插入图片描述
查看metrics-server的日志,有以下报错:
Failed to make webhook authorizer request: the server could not find the requested resource
在这里插入图片描述
参考:k8s-v1.22安装metrics-server

github/metrics server有提到metrics server支持的k8s版本,我使用的是1.23版本,需要使用0.4以上的版本,而我当前使用的是0.3+的版本。在网上找了一遍,将使用的镜像修改为phperall/metrics-server:v0.4.1

在这里插入图片描述
修改yaml文件后执行以下命令:
docker pull phperall/metrics-server:v0.4.1
kubectl apply -f components.yaml
在这里插入图片描述
换成0.4+镜像后日志打印正常。
在这里插入图片描述

HPA

定义Deployment和Service。定义resources.requests.cpu是关键。

apiVersion: v1
kind: Service
metadata:
  name: myngx
spec:
  ports:
  - name: myngx
    port: 3080
    targetPort: 80
  selector:
    app: myngx
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: myngx
spec:
  replicas: 10
  strategy:
    rollingUpdate:
      maxSurge: 40%
      maxUnavailable: 40%
    type: RollingUpdate
  selector:
    matchLabels:
      app: myngx
  template:
    metadata:
      labels:
        app: myngx
    spec:
      containers:
      - image: nginx:1.7.9
        name: myngx
        ports:
        - containerPort: 80
        resources:
          requests:
            cpu: 30m

kubectl autoscale deployment myngx --min=1 --max=40 --cpu-percent=20
kubectl get hpa
在这里插入图片描述
yum install httpd-tools -y
安装ab测试软件

watch -n 0.5 kubectl get pods
每隔0.5秒监控pod的变化

ab -c 5000 -n 50000 http://10.99.174.166:3080/
每次并发5000个请求,一共50000个请求。
在这里插入图片描述
kubectl top nodes
查看节点的CPU和内存使用情况。
在这里插入图片描述
在CPU使用增加时,Pod会自动扩容。CPU使用减少时,Pod会自动缩容。
在这里插入图片描述

标签:metrics,k8s,name,Kubernetes,kubectl,myngx,server,Metrics,Server
来源: https://blog.csdn.net/u012734723/article/details/122932800

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有