U prošlom članku smo raspravljali kako postaviti i pokrenuti Kubernetes klaster, razgovarajmo o tome kako se možemo rasporediti NGINX usluga na našem klasteru.
Izvršit ću ovu implementaciju na virtualnom stroju na kojem se nalazi javni davatelj usluga u oblaku. Kao i kod mnogih javnih cloud usluga, mnogi općenito održavaju javnu i privatnu IP shemu za svoje virtualne strojeve.
Glavni čvor - javni IP: 104.197.170.99 i privatni IP: 10.128.15.195. Radnički čvor 1 - javni IP: 34.67.149.37 i privatni IP: 10.128.15.196. Radnički čvor 2 - javni IP: 35.232.161.178 i privatni IP: 10.128.15.197.
Pokrenuti ćemo ovu implementaciju s glavnog čvora.
Počnimo s provjerom statusa klastera. Svi vaši čvorovi trebali bi biti u a SPREMAN država.
# kubectl get čvorovi.
Izrađujemo implementaciju NGINX koristiti NGINX slika.
# kubectl stvoriti implementaciju nginx --image = nginx.
Sada možete vidjeti stanje svoje implementacije.
# kubectl dobiti implementacije.
Ako želite vidjeti više pojedinosti o svojoj implementaciji, možete pokrenuti opisati naredba. Na primjer, moguće je odrediti koliko se replika implementacije izvodi. U našem slučaju očekujemo da će se prikazivati replika 1 (tj 1/1 replike).
# kubectl opisuju implementaciju nginx.
Sada je vaša implementacija Nginxa aktivna. Možda ćete htjeti izložiti NGINX usluga za javnu IP adresu dostupna na internetu.
Kubernetes nudi nekoliko mogućnosti prilikom izlaganja vaše usluge na temelju značajke koja se naziva Kubernetes-tipovi usluga, a to su:
Zadana vrsta usluge je KlasterIP.
U našem scenariju želimo koristiti NodePort-vrsta usluge jer imamo i javnu i privatnu IP adresu i za sada nam nije potreban vanjski balans opterećenja. S ovom vrstom usluge, Kubernetes će dodijeliti ovu uslugu portovima na 30000+ domet.
# kubectl izradi nodeport usluge nginx --tcp = 80: 80.
Pokrenite dobiti svc naredbu za pregled sažetka usluge i izloženih portova.
# kubectl get svc.
Sada možete provjeriti je li Nginx stranica je dostupna na svim čvorovima koristeći naredba curl.
# curl master-node: 30386. # curl node-1: 30386. # curl node-2: 30386.
Kao što vidite, „DOBRODOŠLI U NGINX!”Stranica se može doći.
Kao što ste mogli primijetiti, Kubernetes izvještava da nemam registriran aktivan javni IP ili bolje rečeno nema registriran EXTERNAL-IP.
# kubectl get svc.
Provjerimo je li to istina, nemam vanjski IP priključen na svoja sučelja pomoću IP naredba.
# ip a.
Nema javnog IP -a kao što vidite.
Kao što je ranije spomenuto, trenutno pokrećem ovu implementaciju na a Virtualni stroj nudi javni davatelj usluga oblaka. Dakle, iako nema posebnog sučelja kojem je dodijeljen javni IP, pružatelj VM -a izdao je efemernu vanjsku IP adresu.
Efemerna vanjska IP adresa privremena je IP adresa koja ostaje povezana s VM -om sve dok se virtualna instanca ne zaustavi. Kad se virtualna instanca ponovno pokrene, dodjeljuje se novi vanjski IP. U osnovi, to je jednostavan način za davatelje usluga da iskoriste neaktivne javne IP adrese.
Ovdje je izazov, osim činjenice da vaš javni IP nije statičan, taj što Efemerna javna IP adresa jednostavno je proširenje (ili proxy) privatnog IP -a, pa će se iz tog razloga usluzi pristupiti samo na portu 30386. To znači da će se usluzi pristupiti putem URL -a, to je 104.197.170.99:30386, što ako provjerite svoj preglednik, trebali biste moći vidjeti stranicu dobrodošlice.
Time smo uspješno raspoređeni NGINX na našem Kubernetes klasteru s 3 čvora.