Kubernetes Tutorial - Isang Komprehensibong Gabay Para sa Kubernetes



Ang blog na ito sa Kubernetes Tutorial, lalakad ka sa lahat ng mga konsepto ng system ng orkestra ng lalagyan gamit ang isang Kamay.

Ang Kubernetes ay isang platform na inaalis ang mga manu-manong proseso na kasangkot sa pag-deploy ng mga lalagyan na aplikasyon. Sa blog na ito sa Kubernetes Tutorial, dadaanin mo ang lahat ng mga konsepto na nauugnay sa solusyon sa pamamahala ng multi-container.

Ang mga sumusunod na paksa ay saklaw sa tutorial na ito:





Ngayon, bago sumulong sa blog na ito, hayaan mo akong mabilis kong ibigay sa iyo ang tungkol sa paglalagay ng container.

Kaya, bago ang pagkakaroon ng mga lalagyan, ang mga tagabuo at mga tagasubok ay palaging may isang tiff sa pagitan nila. Karaniwan, nangyari ito dahil ang gumana sa panig ng dev, ay hindi gagana sa panig ng pagsubok. Pareho silang umiiral sa iba't ibang mga kapaligiran. Ngayon, upang maiwasan ang mga nasabing senaryo na lalagyan ay ipinakilala upang ang parehong mga Developers at Testers ay nasa parehong pahina.



Ang paghawak ng isang malaking bilang ng mga lalagyan na magkasama ay isa ring problema. Minsan habang nagpapatakbo ng mga lalagyan, sa panig ng produkto, ilang mga isyu ang naitaas, na wala sa yugto ng pag-unlad. Ang ganitong uri ng mga senaryo ay ipinakilala ang Container Orchestration System.

Bago ako malalim na sumisid sa system ng orkestra, hayaan mo lang akong mabilis na ilista ang mga hamon na kinakaharap nang wala ang sistemang ito.



Kubernetes Tutorial: Mga Hamunin Nang Walang Container Orchestration

Mga Hamon Nang Walang Pag-oayos ng Container - Kubernetes Tutorial - Edureka

Tulad ng nakikita mo sa diagram sa itaas kapag maraming mga serbisyo ang tumatakbo sa loob ng mga lalagyan, baka gusto mong sukatin ang mga lalagyan na ito. Sa mga malakihang industriya, ito ay talagang matigas gawin. Iyon ay dahil tataasan nito ang gastos upang mapanatili ang mga serbisyo, at ang pagiging kumplikado upang patakbo silang magkatabi.

Ngayon, upang maiwasan ang manu-manong pag-set up ng mga serbisyo at pagtagumpayan ang mga hamon, kailangan ng isang malaking bagay. Dito makikita ang larawan ng Container Orchestration Engine.

Ang makina na ito, hinahayaan kaming ayusin ang maraming mga lalagyan, sa paraang inilunsad ang lahat ng mga kalakip na machine, malusog at naipamahagi ang mga lalagyan sa isang clustered na kapaligiran. Sa mundo ngayon, higit sa lahat mayroong dalawang mga tulad engine: Mga Gobernador & Docker Swarm .

Kubernetes Tutorial: Kubernetes vs Docker Swarm

Mga Gobernador at Docker Swarm ay nangunguna sa mga tool ng orkestra ng lalagyan sa merkado ngayon. Kaya bago gamitin ang mga ito sa prod, dapat mong malaman kung ano talaga sila at kung paano sila gumagana.

Dagdag dito, sa blog, papasok ako ng malalim sa Kubernetes, ngunit upang malaman ang tungkol sa Docker maaari kang mag-click .

Tulad ng maaari mong tingnan sa imahe sa itaas, ang Kubernetes, kung ihinahambing sa Docker Swarm ay nagmamay-ari ng isang mahusay na aktibong komunidad at binibigyan ng kapangyarihan ang auto-scaling sa maraming mga organisasyon. Katulad nito, ang Docker Swarm ay may isang madaling simulan ang kumpol kapag inihambing sa Kubernetes, ngunit limitado ito sa mga kakayahan ng Docker API.

Sa gayon, mga kababayan, hindi lamang ito ang mga pagkakaiba sa mga nangungunang tool. Kung nais mong malaman ang detalyadong mga pagkakaiba sa pagitan ng parehong mga tool ng orkestra ng lalagyan, maaari kang mag-click

Interesado Upang Malaman nang Higit Pa Tungkol sa Kubernetes?

Kung mapipili ko ang aking pinili sa pagitan ng dalawa, kung gayon dapat itong maging mga Kubernetes dahil, ang mga lalagyan ay kailangang pamahalaan at konektado sa labas ng mundo para sa mga gawain tulad ng pag-iiskedyul, pag-balancing sa pag-load, at pamamahagi.

Ngunit, kung sa tingin mo ay lohikal, ang Docker Swarm ay gagawa ng isang mas mahusay na pagpipilian, dahil tumatakbo ito sa tuktok ng Docker di ba? Kung ako ay ikaw, tiyak na nalilito ako tungkol sa aling tool ang gagamitin. Ngunit hey, si Kubernetes ay isang hindi mapag-aalinlanganan na pinuno sa merkado at tumatakbo din sa tuktok ng mga lalagyan ng Docker na may mas mahusay na pag-andar.

Ngayon, na naintindihan mo ang pangangailangan para sa Kubernetes, ito ay isang magandang panahon, na sinasabi ko sa iyo Ano ang Kubernetes?

Kubernetes Tutorial: Ano ang Kubernetes?

ay isang open-source system na humahawak sa gawain ng pag-iiskedyul ng mga lalagyan sa isang compute cluster at pinamamahalaan ang mga workload upang matiyak na tumatakbo sila bilang balak ng gumagamit. Bilang isang ideya ng Google, nag-aalok ito ng mahusay na pamayanan at mahusay na gumagana sa lahat ng mga cloud provider upang maging isang solusyon sa pamamahala ng multi-container.

Kubernetes Tutorial: Mga Tampok ng Kubernetes

Ang mga tampok ng Kubernetes, ay ang mga sumusunod:

  • Awtomatikong Pag-iskedyul: Nagbibigay ang Kubernetes ng advanced na scheduler upang maglunsad ng lalagyan sa mga node ng cluster batay sa kanilang mga kinakailangan sa mapagkukunan at iba pang mga hadlang, habang hindi sinasakripisyo ang kakayahang magamit.
  • Mga Kakayahang Sariling Paggamot: Pinapayagan ng Kubernetes na palitan at i-reschedule ang mga lalagyan kapag namatay ang mga node. Pinapatay din nito ang mga lalagyan na hindi tumutugon sa pagsusuri ng kalusugan na tinukoy ng gumagamit at hindi ini-advertise ang mga ito sa mga kliyente hanggang sa handa silang maghatid.
  • Mga awtomatikong paglulunsad at pag-rollback: Ang Kubernetes ay nagpapalabas ng mga pagbabago sa application o pagsasaayos nito habang sinusubaybayan ang kalusugan ng application upang matiyak na hindi nito pinapatay ang lahat ng iyong mga pagkakataon nang sabay. Kung may mali, sa Kubernetes maaari mong i-rollback ang pagbabago.
  • Pahalang na Pag-scale at Pagbabalanse ng Load: Maaaring sukatin ng mga Kubernetes at i-scale down ang application alinsunod sa mga kinakailangan sa isang simpleng utos, gamit ang isang UI, o awtomatikong batay sa paggamit ng CPU.

Kubernetes Tutorial: Kubernetes Architecture

Ang Kubernetes Architecture ay may mga sumusunod na pangunahing sangkap:

  • Mga master node
  • Mga node ng Trabaho / Alipin

Tatalakayin ko isa-isa ang bawat isa sa kanila. Kaya, sa umpisa simulan natin sa pamamagitan ng pag-unawa sa Master Node .

Master Node

Ang master node ay responsable para sa pamamahala ng Kubernetes cluster. Pangunahin ito ang punto ng pagpasok para sa lahat ng mga gawain sa pangangasiwa. Maaaring mayroong higit sa isang master node sa cluster upang suriin kung may tolerance ng kasalanan.

kung paano itakda ang classpath sa java sa windows 10

Tulad ng nakikita mo sa diagram sa itaas, ang master node ay may iba't ibang mga sangkap tulad ng API Server, Controller Manager, scheduler at ETCD.

  • API Server: Ang server ng API ay ang punto ng pagpasok para sa lahat ng mga REST na utos na ginamit upang makontrol ang kumpol.
  • Controller Manager: Ay isang daemon na kumokontrol sa kumpol ng Kubernetes, at namamahala ng iba't ibang mga di-natatapos na mga loop ng kontrol.
  • Tagapag-iskedyul: Iniskedyul ng tagapag-iskedyul ang mga gawain sa mga node ng alipin. Iniimbak nito ang impormasyon sa paggamit ng mapagkukunan para sa bawat node ng alipin.
  • ETCD: Ang ETCD ay isang simple, ipinamamahagi, pare-pareho na key-value store. Pangunahin itong ginagamit para sa nakabahaging pagsasaayos at pagtuklas ng serbisyo.

Mga node ng Trabaho / Alipin

Ang mga node ng manggagawa ay naglalaman ng lahat ng kinakailangang serbisyo upang pamahalaan ang networking sa pagitan ng mga lalagyan, makipag-usap sa master node, at magtalaga ng mga mapagkukunan sa nakaiskedyul na mga lalagyan.

Tulad ng nakikita mo sa diagram sa itaas, ang node ng manggagawa ay may iba't ibang mga sangkap tulad ng Docker Container, Kubelet, Kube-proxy, at Pods.

  • Lalagyan ng Docker: Tumatakbo ang Docker sa bawat isa sa mga node ng manggagawa, at pinapatakbo ang naka-configure na mga pod
  • Kubelet: Nakukuha ng Kubelet ang pagsasaayos ng isang Pod mula sa API server at tinitiyak na ang inilarawan na mga lalagyan ay nakabukas at tumatakbo.
  • Cuba proxy: Ang Kube-proxy ay kumikilos bilang isang network proxy at isang load balancer para sa isang serbisyo sa isang solong node ng manggagawa
  • Mga Pod: Ang isang pod ay isa o higit pang mga lalagyan na lohikal na tumatakbo magkasama sa mga node.

Kung nais mo ng isang detalyadong paliwanag ng lahat ng mga bahagi ng Kubernetes Architecture, maaari kang sumangguni sa aming blog sa

Nais Na Maging Certified Sa Kubernetes?

Kubernetes Tutorial: Kubernetes Case-Study

Y ahoo! HAPON ay isang tagapagbigay ng serbisyo sa web na punong-tanggapan ng Sunnyvale, California. Bilang layunin ng kumpanya na gawing virtual ang hardware, nagsimulang gumamit ang kumpanya OpenStack noong 2012. Ang kanilang panloob na kapaligiran ay mabilis na nagbago. Gayunpaman, dahil sa pag-usad ng teknolohiya ng cloud at container, nais ng kumpanya ang capability upang ilunsad ang mga serbisyo sa iba't ibang mga platform.

Problema: Paano lumikha ng mga imahe para sa lahat ng kinakailangang mga platform mula sa isang application code, at ipakalat ang mga imaheng iyon sa bawat platform?

Para sa iyong mas mahusay na pag-unawa, sumangguni sa larawan sa ibaba. Kapag binago ang code sa registry ng code, pagkatapos ang mga hubad na larawang metal, lalagyan ng Docker, at mga imahe ng VM ay nilikha ng tuluy-tuloy na mga tool sa pagsasama, naitulak sa pagpapatala ng imahe, at pagkatapos ay ipinakalat sa bawat platform ng imprastraktura.


Ngayon, mag-focus tayo sa daloy ng trabaho ng container upang maunawaan kung paano nila ginamit ang Kubernetes bilang isang platform ng pag-deploy. Sumangguni sa imahe sa ibaba upang sumilip sa arkitektura ng platform.

Ginagamit ang mga pagkakataon ng OpenStack, kasama ang Docker, Kubernetes, Calico, atbp dito upang maisagawa ang iba't ibang mga operasyon tulad ng Container Networking, Container Registry, at iba pa.

Kapag mayroon kang isang bilang ng mga kumpol, pagkatapos ito ay magiging mahirap na pamahalaan ang mga ito ng tama?

Kaya, nais lamang nilang lumikha ng isang simple, base OpenStack cluster upang maibigay ang pangunahing pag-andar na kinakailangan para sa Kubernetes at gawing mas madaling pamahalaan ang kapaligiran ng OpenStack.

Sa pamamagitan ng kumbinasyon ng daloy ng trabaho ng paglikha ng Imahe at Kubernetes, itinayo nila ang toolbar sa ibaba na ginagawang madali mula sa push code hanggang sa pag-deploy.


Tinitiyak ng ganitong uri ng toolchain na ang lahat ng mga kadahilanan para sa paglawak ng produksyon tulad ng multi-tenancy, pagpapatotoo, imbakan, networking, pagtuklas ng serbisyo ay isinasaalang-alang.

Ganun ang mga tao, Ang Yahoo! HAPON nagtayo ng isang automation toolchain para sa 'one-click' na pag-deploy ng code sa Kubernetes na tumatakbo sa OpenStack, kasama ang tulong mula sa Google at Solinea .

Mga Tutorial ng Mga Gobernador: Mga Kamay

Sa Hands-On na ito, ipapakita ko sa iyo kung paano lumikha ng isang pag-deploy at isang serbisyo. Gumagamit ako ng isang halimbawa ng Amazon EC2, upang magamit ang Kubernetes. Kaya, ang Amazon ay nakaisip Serbisyo ng Elastic Container ng Amazon para sa Mga Gobernador (Amazon EKS) , na nagbibigay-daan sa kanila upang lumikha ng mga kumpol ng Kubernetes sa ulap nang napakabilis at madali. Kung nais mong matuto nang higit pa tungkol dito, maaari kang mag-refer sa blog

Hakbang 1: Una lumikha ng isang folder sa loob kung saan lilikha ka ng iyong paglawak at serbisyo. Pagkatapos nito, gumamit ng isang editor at buksan ang isang file ng Pag-deploy .

mkdir handsOn cd handsOn vi Deploy.yaml

Hakbang 2: Kapag binuksan mo ang file ng paglawak, banggitin ang lahat ng mga pagtutukoy para sa application na nais mong i-deploy. Narito sinusubukan kong i-deploy ang isang httpd aplikasyon.

apiVersion: apps / v1 #Natutukoy ang uri ng Bersyon ng API: Tinutukoy ng parameter ng Pag-deploy ng #Kinds kung aling uri ng file ito, sa paglipas dito ay ang Metadata ng pag-deploy: name: dep1 #Nag-iistoryahan ang pangalan ng spec ng pag-deploy: # Sa ilalim ng Mga pagtutukoy, nabanggit mo ang lahat ang mga pagtutukoy para sa mga replika ng paglawak: 3 # Bilang ng mga replika ay magiging 3 tagapili: matchLabels: app: httpd #Nangalan ng label na hahanapin ay template ng http: metadata: mga label: app: httpd #Nagpahiwatig ng pangalan ay magiging httpd spec: # Sa ilalim Mga pagtutukoy, binanggit mo ang lahat ng mga pagtutukoy para sa mga lalagyan ng lalagyan: - pangalan: httpd #Name ng mga lalagyan ay magiging httpd na imahe: httpd: pinakabagong #Ang imahe na kailangang i-download ay httpd: pinakabagong mga port: - containerPort: 80 #Ang application ay malantad sa port 80

Hakbang 3: Matapos mong isulat ang iyong file ng paglawak, ilapat ang paglawak gamit ang sumusunod na utos.

ilapat ang kubectl -f Pag-deploy.yaml

Narito -f ay isang pangalan ng watawat na ginamit para satfile niyapangalan

Hakbang 4: Ngayon, sa sandaling mailapat ang pag-deploy, kunin ang listahan ng mga pod na tumatakbo.

kubectl makakuha ng mga pod -o malawak

Dito, -o malawak ang ginagamit upang malaman kung aling node ang tumatakbo na paglawak.

Hakbang 5: Matapos mong lumikha ng isang pag-deploy, ngayon kailangan mong lumikha ng isang serbisyo. Para sa muli gumamit ng isang editor at buksan ang isang blangko serbisyo yaml file .

vi service.yaml

Hakbang 6: Kapag binuksan mo ang isang file ng serbisyo, banggitin ang lahat ng mga pagtutukoy para sa serbisyo.

apiVersion: v1 # Natutukoy ang uri ng Bersyon ng API: Tinutukoy ng parameter ng Serbisyo #Kinds kung aling uri ng file ito, sa paglipas dito ay Serbisyo na metadata: pangalan: netsvc #Naglalagay ng pangalan ng detalye ng serbisyo: # Sa ilalim ng Mga pagtutukoy, binanggit mo ang lahat ng mga pagtutukoy para sa uri ng serbisyo: NodePort selector: app: httpd ports: -protocol: TCP port: 80 targetPort: 8084 # Ang Target na numero ng Port ay 8084

Hakbang 7: Matapos mong isulat ang iyong file ng serbisyo, ilapat ang file ng serbisyo gamit ang sumusunod na utos.

ilapat ang kubectl -f serbisyo.yaml

Hakbang 8: Ngayon, sa sandaling mailapat ang iyong serbisyo upang suriin kung tumatakbo ang serbisyo o hindi gamitin ang sumusunod na utos.

kubectl kumuha ng svc

Hakbang 9: Ngayon, upang makita ang mga pagtutukoy ng serbisyo, at suriin kung aling Endpoint itonakagapos sa, gamitin ang sumusunod na utos.

ano ang abstraction sa java na may halimbawa
ilarawan ng kubectl ang svc

Hakbang 10: Ngayon dahil gumagamit kami ng halimbawa ng amazona ec2, upang makuha ang webpage at suriin ang output, gamitin ang sumusunod na utos.

curl ip-address

Kung nalaman mong nauugnay ang blog ng Kubernetes Tutorial blog na ito, tingnan ang ni Edureka, isang pinagkakatiwalaang kumpanya sa pag-aaral sa online na may isang network na higit sa 250,000 nasiyahan na mga nag-aaral na kumalat sa buong mundo.

May tanong ba sa amin? Mangyaring banggitin ito sa seksyon ng mga komento ng ” Kubernetes Tutorial ”At babalikan kita.