kubernetes的彈性擴縮容HPA部署實施(3)

一、HPA是kubernetes裏面pod彈性伸縮的實現,它能根據設置的監控閥值進行pod的彈性擴縮容,目前默認HPA只能支持cpu和內存的閥值檢測擴縮容。
但hpa不能用於伸縮一些沒法進行縮放的控制器如DaemonSet
二、也能夠經過custom metric api 調用prometheus實現自定義metric 來更加靈活的監控指標實現彈性伸縮node

kubernetes的彈性擴縮容HPA部署實施(3)

這裏HPA部署須要Metrics-server服務,沒有這個HPA是沒法獲取pod的資源使用狀況,因此部署HPA的時候前提要先部署Metrics-servernginx

早期kubernetes版本是使用hepster,在1.10後面版本更推薦使用metric-server
推薦使用metric-servergit

重點:github

實現hpa的條件:
1\hpa不能autoscale daemonset類型control
2\要實現autoscale,pod必須設置requestweb

開始部署:vim

我這裏吧文件都放到百度網盤了,能夠直接使用不用修改,都修改好了,直接啓動便可api

連接:https://pan.baidu.com/s/1D5yoH6GZO3C0a9PZLK8oUw
提取碼:27s1app

kubeadm方式
將metric-server從github拉取下來ide

git clone git@github.com:kubernetes-incubator/metrics-server.git
或者手動下載到本地再上傳到主機
https://github.com/kubernetes-incubator/metrics-server測試

這裏使用for循環下載

for file in auth-delegator.yaml auth-reader.yaml metrics-apiservice.yaml metrics-server-deployment.yaml metrics-server-service.yaml resource-reader.yaml ; do wget https://raw.githubusercontent.com/kubernetes/kubernetes/master/cluster/addons/metrics-server/$file;done

kubernetes的彈性擴縮容HPA部署實施(3)
一共6個文件

這裏須要修改2個文件
修改 vim metrics-server-deployment.yaml

kubernetes的彈性擴縮容HPA部署實施(3)
這些都須要修改
修改 vim resource-reader.yaml

kubernetes的彈性擴縮容HPA部署實施(3)

配置完這些而後開始建立
kubectl apply -f .

建立完成看一下
kubernetes的彈性擴縮容HPA部署實施(3)

kubernetes的彈性擴縮容HPA部署實施(3)
kubernetes的彈性擴縮容HPA部署實施(3)

這說明metrics-server部署完成了
接下來開始部署HPA

建立一個deployment的yaml
[root@k8s-master hpa]# cat autuscalertest.yaml
apiVersion: v1
kind: Service
metadata:
name: autuscalertest
labels:
app: autuscalertest
spec:
type: NodePort
ports:

  • port: 80
    targetPort: 80
    nodePort: 30110
    protocol: TCP
    selector:
    app: autuscalertest

    apiVersion: extensions/v1beta1
    kind: Deployment
    metadata:
    name: autuscalertest
    spec:
    replicas: 2
    template:
    metadata:
    labels:
    app: autuscalertest
    annotations:
    prometheus.io/scrape: 'true'
    spec:
    containers:

    • name: podinfod
      image: nginx
      imagePullPolicy: Never
      ports:
      • containerPort: 80
        protocol: TCP
        resources:
        requests:
        memory: "32Mi"
        cpu: "1m"
        limits:
        memory: "256Mi"
        cpu: "100m"

kubernetes的彈性擴縮容HPA部署實施(3)

必須有這個requests參數
完成以後直接 kubectl create -f autuscalertest.yaml
這裏的副本數量是2個哈

完成以後
在建立HPA的yaml
kubernetes的彈性擴縮容HPA部署實施(3)
指定pod的cpu和內存使用到的閥值
以及最小容器個數2個,最大爲10個

建立
kubectl create -f HorizontalPodAutoscaler.yaml

kubernetes的彈性擴縮容HPA部署實施(3)
接下來測試一下

webbench進行壓力測試

編譯安裝
wget http://www.ha97.com/code/webbench-1.5.tar.gz
tar zxvf webbench-1.5.tar.gz
cd webbench-1.5
make
make install

kubernetes的彈性擴縮容HPA部署實施(3)

查看一下效果哈
kubernetes的彈性擴縮容HPA部署實施(3)
kubernetes的彈性擴縮容HPA部署實施(3)
kubernetes的彈性擴縮容HPA部署實施(3)

說明我們的HPA是生效了,,等待壓測完事以後,過段時間這10個容器會縮減到2個副本數量這裏注意哈,不會立馬縮減到2個,須要一段時間的

kubernetes的彈性擴縮容HPA部署實施(3)

好了hpa就部署完成了,後面有什麼問題你們能夠私信我哈

相關文章
相關標籤/搜索