1、安装metrics-server插件

1.1 下载metrics-server

1.2 修改 components.yaml

# --kubelet-insecure-tls-不要验证Kubelets提供的服务证书的CA
# --kubelet-preferred-address-types -确定连接到特定节点的地址时使用的节点地址类型的优先 InternalIP 内部ip

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

1.3 创建metrics-server

kubectl create -f components.yaml

1.4 查看metrics-server pod

kubectl get pods -n kube-system |grep metrics-server
metrics-server-75f98fdbd5-mjlqn            1/1     Running   0          28h

1.5 查看node节点 cpu与内存使用率

kubectl top nodes
NAME         CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%
k8s-master   152m         1%     2833Mi          9%
k8s-node1    101m         1%     1854Mi          5%
k8s-node2    96m          1%     1794Mi          5%

2、测试自动扩容与缩容

2.1 创建 deployment web

# vim web.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: web
  name: web
spec:
  replicas: 1
  selector:
    matchLabels:
      app: web-test
  template:
    metadata:
      labels:
        app: web-test
    spec:
      containers:
      - image: nginx
        name: nginx
        resources:
          requests:
            memory: "64Mi"
            cpu: "250m"
# vim web-svc.yaml

apiVersion: v1
kind: Service
metadata:
  name: web-svc
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    app: web-test
  type: NodePort
# web-hpa.yaml
# targetCPUUtilizationPercentage 表示为Pod容器上指定的资源的百分比

apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
  name: web-hpa
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: web
  minReplicas: 1
  maxReplicas: 10
  targetCPUUtilizationPercentage: 50

2.2 使用ab 压测

ab的命令参数比较多,我们经常使用的是-c和-n参数。

  • ab -c 10 -n 100 http://www.xxx.com/index.php
    • c10表示并发用户数为10
    • n100表示请求总数为100
    • http://www.xxx.com/index.php表示请求的目标URL

这行表示同时处理100个请求并运行10次index.php文件。

2.3 查看pod 个数

kubectl get hpa
kubectl get pods 

版权声明:如无特殊说明,文章均为本站原创,转载请注明出处

本文链接:http://jiazone.cn:8848/article/K8S/