Ano ang Kubectl Autoscale?
Autoscaling ay ang pangunahing tampok sa Kubernetes cluster na gumagawa ng mga mapagkukunan upang awtomatikong mag-update nang walang abala sa manual na paggawa nito. Ito ay isang napaka-oras at proseso ng pag-aaksaya ng mapagkukunan upang i-update nang manu-mano ang hinihingi na mga mapagkukunan. Nagbibigay ang Kubernetes autoscaling ng awtomatikong pasilidad para i-optimize ang mga mapagkukunan.
Ang Autoscaler ay maaaring gumawa at sirain ang bilang ng mga node ayon sa kinakailangan. Binabawasan ng Autoscale ang pag-aaksaya ng mga mapagkukunan. Awtomatikong pinipili ng Kubectl autoscale ang mga pod na kasalukuyang gumagana sa loob ng Kubernetes cluster.
Mayroong dalawang uri ng scaling: (1) HorizontalPodScaler at (2) Vertical scaler. Ang Horizontal scaler ay iba sa Vertical scaler. Ang HorizontalPodScaler ay tumutulong sa pagbaba o pagtaas ng mga pod kapag kinakailangan. Sa kabilang banda, ang Vertical scaler ay gumagamit ng mga mapagkukunan tulad ng CPU at memorya.
Narito ang lahat ng mga hakbang na maaari mong sundin sa iyong system at makita ang output para sa isang mas mahusay na pag-unawa.
Hakbang 1: Pagsisimula ng Minikube Cluster
Sa unang hakbang, simulan ang minikube tool para patakbuhin ang Kubernetes cluster para maisagawa namin ang command na 'kubectl autoscale'. Maaari mong i-set up ang iyong mga node, pod, at kahit isang cluster sa kapaligiran ng Kubernetes gamit ang minikube cluster. Upang gawin ito, gamitin ang sumusunod na command upang panatilihing aktibo ang minikube:
~$ simulan ang minikube
Tulad ng makikita mo sa sumusunod na screenshot ng output, pinapagana ng command na ito ang minikube cluster at ginagawang magagamit ang kapaligiran ng Kubernetes:
Hakbang 2: Kunin ang Mga Detalye ng Pod
Sa hakbang na ito, matagumpay na tumatakbo ang Kubernetes cluster. Ngayon, nakukuha namin ang mga detalye ng pod sa cluster. Ang pod sa Kubernetes ay ang koleksyon ng mga unit na nagbabahagi ng mga mapagkukunan. Ang sumusunod na script ay isinasagawa sa pamamagitan ng pagpapatakbo ng sumusunod na command sa iyong minikube cluster:
~$ kubectl makakuha ng mga podGamit ang nakaraang command na 'kubectl get pods', makukuha natin ang listahan ng lahat ng pod na tumatakbo sa Kubernetes cluster.
Pagkatapos isagawa ang command na 'get pods', makuha namin ang sumusunod na output:
Hakbang 3: Kunin ang Mga Deployment ng Pod
Sa nakaraang command na 'kubectl get pods', nakukuha namin ang mga detalye ng pods. Ngayon, ginagamit namin ang command na 'get deployment' para makuha ang listahan ng mga ginawang deployment. Ang sumusunod na script ay isinasagawa para sa layuning ito:
~$ kubectl makakuha ng mga deploymentPagkatapos isagawa ang utos, ang sumusunod na screenshot ay nagpapakita ng output:
Hakbang 4: Autoscale Deployment
Ginagamit ang autoscale command para gawin ang automation na pagpili ng mga pod na tumatakbo sa cluster. Sa pamamagitan ng pag-deploy ng autoscale sa cluster, awtomatiko naming ipinapasok at tinatapos ang bilang ng mga node. Ang sumusunod na script ay isinasagawa sa minikube cluster at ipinapakita nito ang filename, minimum pod, at maximum pod kung saan dapat nasa pagitan ng 2 hanggang 10 ang mga pod:
~$ kubectl autoscale deployment nginx1-deployment1 --min = 2 --max = 10Matapos isagawa ang utos, ang sumusunod na output ay nabuo:
Hakbang 5: Gumawa ng Kubernetes YAML File
Sa hakbang na ito, matututunan mong gumawa ng YAML file sa cluster. Ang YAML file ay kapaki-pakinabang para sa pag-deploy at pagsubok ng application. Mayroong iba't ibang uri sa Kubernetes para gumawa at mag-edit ng file.
Sa artikulong ito, ginagamit namin ang command na 'nano' upang lumikha ng YAML file dahil ito ang pinakamadaling paraan at ang pinakamahusay na pagpipilian para sa mga nagsisimula.
Sundin ang mga ibinigay na hakbang dito upang lumikha ng YAML file gamit ang nano:
- Upang lumikha ng isang bagong file o baguhin ang isang umiiral na, mag-navigate sa nais na lokasyon ng direktoryo.
- I-type ang “nano”. Pagkatapos nito, isulat ang pangalan ng file. Halimbawa, kung gusto mong gumawa ng bagong pangalan ng file, isulat ang pangalan – “deploo.yaml”.
Patakbuhin ang sumusunod na script at lumikha ng YAML file sa direktoryo ng proyekto:
~$ nano deploo.yamlPagkatapos gawin ang 'deploo.yaml' na file, ang susunod na hakbang ay i-configure ang YAML file. Ipinapaliwanag namin ito sa susunod na hakbang.
Hakbang 6: Nilalaman ng YAML File
Sa hakbang na ito, madali nating mai-configure ang Apache server at mga PHP file. Bago natin gamitin ang HorizontalPodScaler, dapat nating i-configure ang workload monitor. Habang ipinapakita ng sumusunod na piraso ng code ang uri:deployment, ang port ng web browser ay 90 at ang limitasyon ng CPU ay 200m.
Maaari mong makita ang kumpletong 'deploo.yaml' na impormasyon ng file dito:
apiVersion : apps/v1mabait : Deployment
metadata :
pangalan : php
spec :
tagapili :
matchLabels :
tumakbo : php-apache
template :
metadata :
mga label :
tumakbo : php-apache
spec :
mga lalagyan :
- pangalan : php
larawan : registry.k8s.io/hpa-example
mga daungan :
- containerPort : 90
mapagkukunan :
mga limitasyon :
cpu : 200m
mga kahilingan :
cpu : 100m
---
apiVersion : v1
mabait : Serbisyo
metadata :
pangalan : php
mga label :
tumakbo : php-apache
spec :
mga daungan :
- daungan : 70
tagapili :
tumakbo : php-apache
Hakbang 7: Gumawa ng Deployment
Sa hakbang na ito, gawin natin ang YAML file na pinangalanang 'deploo.yaml'. Ang sumusunod na script ay isinasagawa sa minikube cluster:
~$ kubectl lumikha -f deploo.yamlAng output ng nabanggit na command na aming naisakatuparan ay makikita sa sumusunod na screenshot. Ang output ay nagpapahiwatig na ang YAML file ay nilikha:
Hakbang 8: Gumawa ng HorizontalPodScaler
Sa hakbang na ito, ipapakita namin sa iyo ang command para gawin ang HorizontalPodAutoscaler. Ang mga pod ay ipinasok at awtomatikong tinapos depende sa pangangailangan. Ito ay naiiba sa vertical scaling, kung saan ang CPU at memory resources ay itinalaga ng autoscale. Ang sumusunod na script ay isinasagawa sa minikube cluster:
~$ kubectl autoscale deployment php -- cpu - porsyento = limampu -- min = 10 –max = dalawampuDito, makikita mo na itinakda namin ang mga halaga para sa minimum at maximum sa 10 at 20.
Nakalakip ang output ng nakaraang command:
Hakbang 9: Suriin ang HorizontalPodScaler
Sa hakbang na ito, sinusuri namin ang kasalukuyang katayuan ng HorizontalPodAutoscaler na bagong likha. Ang sumusunod na utos ay isinasagawa:
~$ kubectl kumuha ng hpaKonklusyon
Ang isa sa mga pinakakapaki-pakinabang na feature ng Kubernetes ay ang “kubectl autoscale” na nagbibigay ng mga awtomatikong update sa mapagkukunan sa cluster ng Kubernetes. Tumutulong ang Autoscaler kapag kailangan ng cluster na pataasin ang mga pod o bawasan ang mga pod. Sa artikulong ito, natutunan namin ang dalawang paraan ng autoscale – ang isa ay ang default na autoscaler at ang isa ay ang HorizontalPodScaler.
Una, inilagay namin ang mga pod at idineklara ang mga ito. Pagkatapos, ginawa namin ang autoscaler at na-configure ang Apache server na i-deploy ang workload monitor bago ang HorizontalPodScaler. Pagkatapos noon, gumawa kami ng YAML file at ang HorizontalPodScaler. Nakatuon ang artikulong ito sa mga detalyadong hakbang ng paggawa, pag-configure, at pag-deploy ng autoscale na Kubernetes.