Kubginetes toparynda Nginx-i nädip ýerleşdirmeli
Geçen makalamyzda Kubernetes klasterini nädip gurmalydygyny we işlemelidigini ara alyp maslahatlaşdyk, geliň, NGINX hyzmatyny öz toparymyzda nädip ýerleşdirip boljakdygyny ara alyp maslahatlaşalyň.
Bu ýerleşdirmäni köpçülikleýin bulut üpjün edijisi tarapyndan ýerleşdirilen wirtual maşynda işlederin. Köpçülikleýin bulut hyzmatlarynda bolşy ýaly, köpüsi wirtual maşynlary üçin döwlet we hususy IP shemasyny saklaýarlar.
Master Node - Public IP: 104.197.170.99 and Private IP: 10.128.15.195 Worker Node 1 - Public IP: 34.67.149.37 and Private IP: 10.128.15.196 Worker Node 2 - Public IP: 35.232.161.178 and Private IP: 10.128.15.197
Kubernetes toparynda NGINX ýerleşdirmek
Bu ýerleşdirmäni baş düwünden işlederis.
Klasteriň ýagdaýyny barlamakdan başlalyň. Nhli düwünleriňiz Taýýar ýagdaýda bolmaly.
# kubectl get nodes
NGINX şekilini ulanyp, NGINX ýerleşdirýäris.
# kubectl create deployment nginx --image=nginx
Indi ýerleşdiriş ýagdaýyňyzy görüp bilersiňiz.
# kubectl get deployments
Gurnamaňyz barada has jikme-jik görmek isleseňiz, düşündiriş buýrugyny işledip bilersiňiz. Mysal üçin, ýerleşdirmegiň näçe nusgasynyň işleýändigini kesgitlemek mümkin. Biziň ýagdaýymyzda, 1 ylgawyň göçürmesini görmäge garaşýarys (ýagny 1/1 göçürme).
# kubectl describe deployment nginx
Indi Nginx enjamlaşdyryşyňyz işjeň, NGINX hyzmatyny internetde elýeterli köpçülige açyk IP-e açmak isläp bilersiňiz.
Kubernetes, Kubernetes Hyzmat görnüşleri diýilýän aýratynlyk esasynda hyzmatyňyzy paş edende birnäçe wariant hödürleýär we olar:
- ClusterIP - Bu Hyzmat görnüşi, adatça, diňe bir toparyň içinde we mümkin diňe klaster düwünleriniň içinde elýeterli içerki IP-de hyzmaty paş edýär.
- NodePort - Toparyňyzyň daşyndaky, belli bir portda (NodePort diýlip atlandyrylýan) klasterdäki her düwünde hyzmatyňyzy açyp görkezmegiň iň esasy warianty. Bu opsiýany gysga wagtda suratlandyrarys.
- LoadBalancer - Bu opsiýa, hyzmatyňyza girmek üçin dürli üpjün edijiler tarapyndan hödürlenýän daşarky Load-Balans hyzmatlaryna esaslanýar. Hyzmatyňyz üçin ýokary elýeterlilik hakda pikir edeniňizde, bu has ygtybarly warianty we deslapky girişden has köp aýratynlygy bar.
- ExternalName - Bu hyzmat, toparyň daşyndaky hyzmatlara traffigi gönükdirýär. Şeýlelik bilen, hyzmatlar toparyňyzdan ýerleşdirilip bilinjek DNS adyna düzüldi. Munuň proksi ulanmaýandygyny bellemek möhümdir.
Adaty Hyzmat görnüşi ClusterIP.
Biziň ssenariýimizde, NodePort Hyzmat görnüşini ulanmak isleýäris, sebäbi döwlet we hususy IP adresimiz bar we häzirlikçe daşarky ýük balansy gerek däl. Bu hyzmat görnüşi bilen Kubernetes bu hyzmaty 30000+ aralygyndaky portlarda bellär.
# kubectl create service nodeport nginx --tcp=80:80
Hyzmatyň gysgaça mazmunyny we açylan portlary görmek üçin get svc buýrugyny işlediň.
# kubectl get svc
Indi, egri buýrugyny ulanyp, ähli düwünlerde Nginx sahypasynyň elýeterlidigini barlap bilersiňiz.
# curl master-node:30386 # curl node-1:30386 # curl node-2:30386
Görşüňiz ýaly\NGINX-a hoş geldiňiz! sahypasyna baryp bolýar.
Üns beren bolmagyňyz mümkin, Kubernetes meniň işjeň IP-de hasaba alynmandygymy, has dogrusy, Daşarky IP hasaba alynmandygyny habar berýär.
# kubectl get svc
Geliň, hakykatdanam dogrudygyny ýa-da IP buýrugyny ulanyp, interfeýslerimde daşarky IP ýokdugymyzy barlap göreliň.
# ip a
Görşüňiz ýaly köpçülige açyk IP ýok.
Öň bellenip geçilişi ýaly, häzirki wagtda köpçülikleýin bulut üpjün edijisi tarapyndan hödürlenýän Wirtual Maşyn bilen işleýärin. Şeýlelik bilen, köpçülige açyk IP berlen aýratyn interfeýs ýok bolsa-da, VM üpjün ediji Ephemeral daşarky IP adresi berdi.
Efemer daşarky IP adresi, wirtual mysal togtadylýança VM-e birikdirilen wagtlaýyn IP adresi. Wirtual mysal täzeden açylanda täze daşarky IP bellenilýär. Esasan, hyzmat üpjün edijiler üçin boş jemgyýetçilik IP-lerini ulanmagyň ýönekeý usuly.
Bu ýerdäki kynçylyk, köpçülige açyk IP-iňiziň statik däldiginden başga-da, “Ephemeral Public IP” -iň diňe şahsy IP-iň giňeldilmegi (ýa-da proksi) bolmagy we şonuň üçin bu hyzmatyň diňe 30386 portda elýeterli bolmagydyr. Bu, hyzmatyň URL koduna
Munuň bilen 3 düwünli Kubernetes toparymyzda NGINX-ni üstünlikli ýerleşdirdik.