Lumikha ng Kubernetes EndpointSlices

Lumikha Ng Kubernetes Endpointslices



Nagbibigay-daan sa iyo ang isang endpoint slice na subaybayan ang endpoint ng network na konektado sa Kubernetes cluster. Maaari kang matuto nang higit pa tungkol sa EndpointSlices sa kapaligiran ng Kubernetes sa pamamagitan ng artikulong ito na ginawa namin para sa iyo. Sa tutorial na ito, tutulungan ka naming malaman kung ano ang EndpointSlice sa cluster ng Kubernetes at kung paano ka makakagawa ng EndpointSlice sa Kubernetes. Magpapakita kami ng ilang kubectl command na nagbibigay-daan sa amin na gumawa ng endpoint sa Kubernetes cluster.

Ano ang EndpointSlice sa Kubernetes?

Ang EndpointSlice sa Kubernetes ay isang network endpoint tracker. Ginagawa nitong posible na subaybayan ang mga endpoint ng network sa isang cluster ng Kubernetes. Sa simpleng salita, ito ay isang bagay na nakakakuha ng mga IP address mula sa bawat pod na nakatalaga dito. Ang serbisyo ng Kubernetes ay tumutukoy sa bagay na ito upang makuha ang talaan ng mga panloob na IP address ng pod para sa komunikasyon. Bukod dito, ang mga endpoint na ito ay ginagamit ng mga pod upang mailantad ang kanilang mga sarili sa isang serbisyo.

Sa larangan ng Kubernetes, gumagana ang mga endpoint na ito bilang abstraction layer na tumutulong sa serbisyo ng Kubernetes na matiyak na mayroong distribusyon ng trapiko sa mga pod sa cluster. Gayunpaman, kapag tumaas ang isang load ng trapiko, nangyayari ang isyu sa pag-scale ng trapiko. Ito ay dahil hawak ng isang endpoint ang lahat ng endpoint ng network para sa bawat serbisyo. At kapag lumaki ang mga source na ito sa hindi katanggap-tanggap na laki, negatibong maaapektuhan ang performance ng Kubernetes. Sa madaling salita, kapag ang bilang ng mga endpoint ng network ay tumaas nang husto, ang kakayahan ng Kubernetes na sukatin ang deployment ay negatibong maaapektuhan. Ipaunawa natin ito sa tulong ng sumusunod na graphical na larawan:









Dito, makikita mo na ang isang Endpoint ay naglalaman ng lahat ng mga pod sa cluster at ang EndpointSlices ay ang extensible at scalable na alternatibo sa umiiral na Endpoint. Mayroon lamang isang mapagkukunan ng Endpoint para sa buong serbisyo ngunit mayroong higit sa isang EndpointSlices para sa parehong serbisyo. Tinutulungan ka ng EndpointSlices na sukatin ang iyong mga mapagkukunan ng network sa ganitong paraan. Upang maunawaan kung gaano kahalaga ang isyung ito sa scalability, kumuha tayo ng halimbawa.



Halimbawa, ang serbisyo ng Kubernetes ay may humigit-kumulang 9,000 pod na kahit papaano ay napupunta sa 2MB Endpoint na mapagkukunan. Ang isang Endpoint ay mayroong lahat ng Endpoint na mapagkukunan ng mga serbisyo. Kung ang anumang network endpoint ay nagbabago sa endpoint, ang buong mapagkukunan ng endpoint ay kailangang ipamahagi sa bawat node sa cluster. Pagdating sa pagharap sa isang cluster na mayroong 3000 node, ito ay nagiging isang malaking problema dahil ang isang malaking bilang ng mga update ay kailangang ipadala sa bawat node. Kaya naman, kapag mas nag-scale ka sa isang endpoint lang, mas nagiging mahirap ang pag-scale ng network.





Gayunpaman, niresolba ng EndpointSlices ang isyung ito sa pamamagitan ng pagpapagana sa mga Kubernete na sukatin hangga't kinakailangan. Sa halip na gumamit ng isang endpoint na naglalaman ng malaking listahan ng mga IP address at ang nauugnay na mga numero ng port nito, gumamit ng maraming EndpointSlices. Ang EndpointSlices na ito ay maliliit na tipak ng isang malaking solong endpoint. Ang mga hiwa na ito ay mas maliit sa magkano, ngunit pinapagaan nila ang pagkarga na sanhi ng malaking endpoint. Maaari kang mag-imbak ng hanggang 100 pod sa isang EndpointSlice. Tinutulungan ka ng EndpointSlices na ito na ipamahagi ang serbisyo sa isang partikular na pod. Kung may pagbabago sa endpoint ng network, kailangan mo lang magpadala ng mga update sa isang EndpointSlice na naglalaman ng maximum na 100 pod. Ang lahat ng iba pang mga pod sa network ay nananatiling hindi nagalaw.

Ngayon, alamin natin kung paano tayo makakagawa ng Kubernetes EndpointSlice.



Paano Ginagawa ang EndpointSlices sa Kubernetes?

Ang Kubernetes EndpointSlices ay ang pinakamahusay na alternatibo sa iisang endpoint sa cluster ng Kubernetes. Hindi lamang ito nakakatulong sa iyo na subaybayan ang lahat ng mga endpoint ng network nang madali at mahusay ngunit nagbibigay din ng mas mahusay na pagganap kumpara sa isang solong endpoint. Ipinapakita rin nito ang mas mababang trapiko sa network habang nag-aalok ng pagiging maaasahan ng pag-scale. Bukod dito, ang paggamit ng maraming EndpointSlices ay nagbibigay-daan sa iyo na maglagay ng mas kaunting paggawa sa control plane at mga node sa Kubernetes cluster.

Maaari kang magkaroon ng mga hakbang na magbibigay-daan sa iyong matutunan kung paano gumawa ng EndpointSlices sa cluster ng Kubernetes sa mga sumusunod na halimbawa.

Hakbang 1: Simulan ang Minikube Cluster

Ang una at pinakamahalagang hakbang ay upang matiyak na ang minikube cluster ay aktibo. Hindi ka papayagan ng hindi aktibong minikube cluster na magsagawa ng anumang gawain sa kapaligiran ng Kubernetes, kaya siguraduhing nasa active mode ito. Upang matiyak na gumagana at tumatakbo ang minikube cluster, gamitin ang sumusunod na command:

> simulan ang minikube

Kung ang iyong minikube cluster ay hindi pa nagsimula nang mas maaga o kung ito ay nasa sleep mode, ang utos na ito ay gumising dito at ito ay paandarin. Ngayon, mayroon kang aktibong minikube cluster. Handa ka nang gawin ang EndpointSlice sa iyong Kubernetes environment.

Hakbang 2: Gumawa ng Deployment gamit ang YAML File

Ang YAML file ay pinakakaraniwang ginagamit sa Kubernetes para gumawa ng mga deployment. Maaari mong gamitin ang dati nang deployment na YAML file o maaari kang lumikha ng bago gamit ang sumusunod na command:

> nano endpoint.yaml

Lumilikha ito ng bagong YAML file na pinangalanang 'endpoint.yaml' kung saan maaari mong i-save ang kahulugan ng deployment para sa configuration. Sumangguni sa kahulugan ng deployment sa sumusunod na screenshot:

Hakbang 3: Gumawa ng EndpointSlice Gamit ang YAML File

Ngayong mayroon na kaming YAML file na naglalaman ng kahulugan ng deployment, ginagamit namin ito para gawin ang EndpointSlices sa aming Kubernetes cluster. Kailangan nating i-deploy ang configuration file para magkaroon tayo ng EndpointSlices sa Kubernetes cluster. Ginagamit namin ang sumusunod na command upang i-deploy ang configuration file:

> kubectl lumikha -f endpoint.yaml

Sa kapaligiran ng Kubernetes, ang mga mapagkukunan ay nilikha gamit ang command na 'kubectl create'. Kaya, ginagamit namin ang command na 'kubectl create' para gawin ang EndpointSlices mula sa YAML configuration file.

Konklusyon

Ginalugad namin ang EndpointSlices sa kapaligiran ng Kubernetes. Ang EndpointSlice sa Kubernetes ay isang object na ginagamit upang subaybayan ang lahat ng mga endpoint ng network sa Kubernetes cluster. Ito ang pinakamahusay na alternatibo sa isang malaki at nag-iisang Endpoint sa Kubernetes cluster dahil pinapayagan nito ang mas mahusay na scalability at extensibility na mga opsyon. Ang EndpointSlices na ito ay nagbibigay-daan sa Kubernetes cluster na magbigay ng mas mahusay na performance sa pamamagitan ng paglalagay ng mas kaunting labor sa mga node at sa control plane. Sa tulong ng isang halimbawa, natutunan namin kung paano gumawa ng EndpointSlices sa cluster ng Kubernetes.