Kubectl Autoscale Command

Kubectl Autoscale Command



Nagbibigay ang Kubernetes ng autoscaling na kakayahan upang awtomatikong pamahalaan ang mga mapagkukunan nang walang pakikipag-ugnayan ng tao. Awtomatikong binabago ng autoscale function ang bilang ng mga node kapag kinakailangan at nagse-save ng mga mapagkukunan. Sa artikulong ito, matututunan natin kung paano i-deploy ang command na 'kubectl autoscale' at autoscaling ng 'HorizontalPodScaler'. Itinuturo ng tutorial na ito ang mahalagang konseptong ito nang detalyado. Talakayin muna natin kung ano ang konsepto ng kubectl autoscale at pagkatapos ay tumungo sa hakbang-hakbang na proseso para sa mas mahusay na pag-unawa. Ang artikulong ito ay lubhang kapaki-pakinabang kung ikaw ay bago sa konsepto ng Kubernetes autoscaling.

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 pod

Gamit 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:

  Isang screenshot ng isang computer program na Paglalarawan ay awtomatikong nabuo nang may mababang kumpiyansa

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 deployment

Pagkatapos 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 = 10

Matapos 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.yaml

Pagkatapos 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/v1
mabait
: 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.yaml

Ang 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 = dalawampu

Dito, 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 hpa

Konklusyon

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.