最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

k8s監(jiān)控?cái)?shù)據(jù)組件Pod自動(dòng)化進(jìn)行擴(kuò)縮容HPA

 更新時(shí)間:2022年03月18日 16:44:47   作者:、重明  
這篇文章主要為大家介紹了監(jiān)控?cái)?shù)據(jù)組件Pod自動(dòng)化進(jìn)行擴(kuò)縮容-HPA的全面講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步

自動(dòng)擴(kuò)縮容HPA:全稱是Horizontal Pod Autoscaler

我們安裝k8s集群的時(shí)候,安裝過一個(gè)metrics-server的組件,這是一個(gè)監(jiān)控?cái)?shù)據(jù)組件,提供HPA和基礎(chǔ)資源監(jiān)控的能力。就是這面這個(gè)Pod:

[root@k8s-master01 ~]# kubectl get pod -n kube-system 
metrics-server-6bf7dcd649-5fhrw            1/1     Running   2 (3d5h ago)   8d

通過這個(gè)組件可以看到節(jié)點(diǎn)或者Pod的內(nèi)存和CPU的使用率:

[root@k8s-master01 ~]# kubectl top pod -A
NAMESPACE              NAME                                         CPU(cores)   MEMORY(bytes)   
default                busybox                                      0m           0Mi             
kube-system            calico-kube-controllers-5dffd5886b-4blh6     3m           18Mi            
kube-system            calico-node-fvbdq                            42m          135Mi           
kube-system            calico-node-g8nqd                            52m          73Mi        

除了可以進(jìn)行簡單的監(jiān)控功能,還可以利用這個(gè)監(jiān)控的數(shù)據(jù)做一些其他的操作。

比如我們可以給Pod的資源設(shè)定某個(gè)值,當(dāng)資源的使用超過這個(gè)值,那么系統(tǒng)就會(huì)認(rèn)為這個(gè)Pod當(dāng)前存在壓力,從而就行擴(kuò)容。

一般使用CPU和自定義指標(biāo)進(jìn)行擴(kuò)容,內(nèi)存相對(duì)較少。

HPA實(shí)踐:

注意事項(xiàng):要想實(shí)現(xiàn)HPA的自動(dòng)擴(kuò)容,需要滿足以下幾個(gè)條件

  • 必須安裝metrics-server組件或其他自定義版本的metrics-server
  • 必須配置requests參數(shù)
  • 不能擴(kuò)容無法縮放的對(duì)象,如DaemonSet

首先創(chuàng)建一個(gè)nginx的yaml文件:

kubectl create deployment hpa-nginx --image=nginx --dry-run=client -o yaml > hpa-nginx.yaml

然后進(jìn)入yaml文件中進(jìn)行配置:在配置鏡像那里進(jìn)行配置,下列代碼的后三行,如果也想對(duì)基于內(nèi)存擴(kuò)容的話也可以將內(nèi)存寫上。

resources:是資源的意思

requests:是請(qǐng)求的意思,這里應(yīng)該是請(qǐng)求資源的意思

    spec:
      containers:
      - image: nginx
        name: nginx
        resources:
          requests:
            cpu: 10m

執(zhí)行yaml文件創(chuàng)建副本:

[root@k8s-master01 ~]# kubectl create -f hpa-nginx.yaml 
deployment.apps/hpa-nginx created

暴露出一個(gè)service端口:

[root@k8s-master01 ~]# kubectl expose deployment hpa-nginx --port=80
[root@k8s-master01 ~]# kubectl get svc
NAME         TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)   AGE
hpa-nginx    ClusterIP   10.98.236.134   <none>        80/TCP    3m17s
kubernetes   ClusterIP   10.96.0.1       <none>        443/TCP   8d

訪問測(cè)試一下:證明這個(gè)Pod可以用了

[root@k8s-master01 ~]# curl 10.98.236.134
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a  rel="external nofollow"   >nginx.org</a>.<br/>
Commercial support is available at
<a  rel="external nofollow"   >nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>

配置Hpa自動(dòng)擴(kuò)縮容的規(guī)則:這條命令是說當(dāng)hpa-nginx這個(gè)Pod的cpu值達(dá)到10的時(shí)候,將進(jìn)行自動(dòng)擴(kuò)容,最小擴(kuò)容1個(gè),最大擴(kuò)容10個(gè)。

[root@k8s-master01 ~]# kubectl autoscale deployment hpa-nginx --cpu-percent=10 --min=1 --max=10
horizontalpodautoscaler.autoscaling/hpa-nginx autoscaled

看一下hpa的規(guī)則情況:

[root@k8s-master01 ~]# kubectl get hpa
NAME        REFERENCE              TARGETS   MINPODS   MAXPODS   REPLICAS   AGE
hpa-nginx   Deployment/hpa-nginx   0%/10%    1         10        1          2m38s

下面進(jìn)行一個(gè)循環(huán)訪問hpa-nginx:觀察hpa的cpu值會(huì)不會(huì)上升

[root@k8s-master01 ~]# while true; do wget -q -O- http://10.98.236.134 >/dev/null; done

觀察是否已經(jīng)進(jìn)行擴(kuò)容:可以看到hpa-nginx的副本數(shù)已經(jīng)進(jìn)行了自動(dòng)擴(kuò)容

[root@k8s-master01 ~]# kubectl get hpa
NAME        REFERENCE              TARGETS    MINPODS   MAXPODS   REPLICAS   AGE
hpa-nginx   Deployment/hpa-nginx   640%/10%   1         10        1          7m14s
[root@k8s-master01 ~]# kubectl top pod 
NAME                        CPU(cores)   MEMORY(bytes)   
busybox                     0m           0Mi             
hpa-nginx-bd88bdd8f-7gdwq   1m           3Mi             
hpa-nginx-bd88bdd8f-8c6j6   1m           3Mi             
hpa-nginx-bd88bdd8f-cfcjs   1m           7Mi             
hpa-nginx-bd88bdd8f-h8vx7   74m          7Mi             
hpa-nginx-bd88bdd8f-kpgl8   2m           3Mi             
hpa-nginx-bd88bdd8f-lpf45   1m           3Mi             
hpa-nginx-bd88bdd8f-lwc2h   1m           3Mi             
hpa-nginx-bd88bdd8f-qkgfd   1m           3Mi             
hpa-nginx-bd88bdd8f-t9fj9   1m           3Mi             
hpa-nginx-bd88bdd8f-tbrl4   1m           7Mi   

那么,接下來將訪問測(cè)試停下,看副本是否會(huì)自動(dòng)縮容到最初;等待一會(huì)發(fā)現(xiàn)副本回到了最原始的一個(gè)。注意這個(gè)時(shí)間可能會(huì)有點(diǎn)慢,稍微等一會(huì),不是報(bào)錯(cuò)了。

[root@k8s-master01 ~]# kubectl get hpa
NAME        REFERENCE              TARGETS   MINPODS   MAXPODS   REPLICAS   AGE
hpa-nginx   Deployment/hpa-nginx   2%/10%    1         10        10         11m
[root@k8s-master01 ~]# kubectl get pod
NAME                        READY   STATUS    RESTARTS       AGE
busybox                     1/1     Running   26 (46m ago)   8d
hpa-nginx-bd88bdd8f-h8vx7   1/1     Running   0              27m

這個(gè)功能雖然好用,但在實(shí)際生成中一定要結(jié)合實(shí)際的情況使用?。?!

以上就是監(jiān)控?cái)?shù)據(jù)組件Pod自動(dòng)化進(jìn)行擴(kuò)縮容-HPA的詳細(xì)內(nèi)容,更多關(guān)于Pod自動(dòng)化擴(kuò)縮容HPA的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論

五原县| 石楼县| 绥阳县| 洮南市| 叶城县| 肥东县| 上林县| 井冈山市| 东宁县| 德保县| 泗水县| 即墨市| 叙永县| 色达县| 吕梁市| 绍兴县| 嘉祥县| 扎赉特旗| 峨眉山市| 尼玛县| 昆明市| 贵定县| 汶川县| 铜梁县| 凯里市| 台前县| 松桃| 永吉县| 盱眙县| 合水县| 西充县| 枣阳市| 洮南市| 徐闻县| 连平县| 呼和浩特市| 博罗县| 绥江县| 万全县| 扬州市| 海宁市|