Kuinka ottaa Nginx käyttöön Kubernetes-klusteriin


Edellisessä artikkelissamme olemme keskustelleet Kubernetes-klusterin määrittämisestä ja käyttämisestä. Keskustellaan siitä, kuinka voimme ottaa NGINX-palvelun käyttöön klusterissamme.

Suoritan tämän käyttöönoton julkisen pilvipalvelun tarjoajan isännöimässä virtuaalikoneessa. Kuten monissa julkisissa pilvipalveluissa, monet yleensä ylläpitävät julkista ja yksityistä IP-järjestelmää virtuaalikoneita varten.

Testausympäristö

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

NGINX:n käyttöönotto Kubernetes-klusterissa

Suoritamme tämän käyttöönoton pääsolmusta.

Aloitetaan tarkistamalla klusterin tila. Kaikkien solmujen tulee olla VALMIS-tilassa.

kubectl get nodes

Luomme NGINX-asennuksen NGINX-kuvan avulla.

kubectl create deployment nginx --image=nginx

Voit nyt nähdä käyttöönoton tilan.

kubectl get deployments

Jos haluat nähdä lisätietoja käyttöönotostasi, voit suorittaa describe-komennon. On esimerkiksi mahdollista määrittää, kuinka monta kopiota käyttöönotosta on käynnissä. Meidän tapauksessamme odotamme näkevämme 1:n replikan käynnissä (eli 1/1-kopiot).

kubectl describe deployment nginx

Nyt Nginx-asennus on aktiivinen, joten sinun kannattaa altistaa NGINX-palvelu julkiselle IP-osoitteelle, joka on tavoitettavissa Internetistä.

Nginx-palvelusi paljastaminen julkiselle verkolle

Kubernetes tarjoaa useita vaihtoehtoja, kun paljastat palvelusi Kubernetes-palvelutyypeiksi kutsutun ominaisuuden perusteella, ja ne ovat:

  1. ClusterIP – Tämä palvelutyyppi paljastaa palvelun yleensä sisäisessä IP-osoitteessa, joka on tavoitettavissa vain klusterin sisällä ja mahdollisesti vain klusterin solmuissa.
  2. NodePort – Tämä on yksinkertaisin vaihtoehto tarjota palvelusi käytettäväksi klusterin ulkopuolella tietyssä portissa (nimeltään NodePort) jokaisessa klusterin solmussa. Kuvaamme tämän vaihtoehdon pian.
  3. LoadBalancer – Tämä vaihtoehto hyödyntää useiden palveluntarjoajien tarjoamia ulkoisia kuormituksen tasapainotuspalveluita, jotka mahdollistavat pääsyn palveluihisi. Tämä on luotettavampi vaihtoehto, kun ajatellaan palvelusi korkeaa käytettävyyttä, ja siinä on enemmän ominaisuuksia kuin oletuskäyttö.
  4. ExternalName – Tämä palvelu ohjaa liikenteen uudelleen klusterin ulkopuolisiin palveluihin. Näin ollen palvelu on kartoitettu DNS-nimeen, jota voidaan isännöidä klusterin ulkopuolella. On tärkeää huomata, että tämä ei käytä välityspalvelinta.

Oletuspalvelutyyppi on ClusterIP.

Skenaariossamme haluamme käyttää NodePort-palvelutyyppiä, koska meillä on sekä julkinen että yksityinen IP-osoite, emmekä tarvitse ulkoista kuormitustasainta toistaiseksi. Tämän palvelutyypin avulla Kubernetes määrittää tämän palvelun porteille, jotka ovat alueella 30 000+.

kubectl create service nodeport nginx --tcp=80:80

Suorita get svc -komento nähdäksesi yhteenvedon palvelusta ja näkyvistä porteista.

kubectl get svc

Nyt voit varmistaa, että Nginx-sivu on tavoitettavissa kaikissa solmuissa curl-komennolla.

curl master-node:30386
curl node-1:30386
curl node-2:30386

Kuten näet, TERVETULOA NGINX! -sivulle pääsee.

Väliaikaisten JULKISTEN IP-osoitteiden saavuttaminen

Kuten olet ehkä huomannut, Kubernetes ilmoittaa, että minulla ei ole rekisteröityä aktiivista julkista IP-osoitetta tai pikemminkin ULKOISTA IP-osoitetta.

kubectl get svc

Varmistetaan, onko se todella totta, että minulla ei ole IP-komennolla liitetty ULKOISTA IP-osoitetta liitäntöihini.

ip a

Ei julkista IP-osoitetta, kuten näet.

Kuten aiemmin mainittiin, käytän tällä hetkellä tätä käyttöönottoa julkisen pilvipalvelun tarjoajan virtuaalikoneella. Joten vaikka julkista IP-osoitetta ei ole määrätty erityiselle rajapinnalle, virtuaalikoneen tarjoaja on antanut lyhytaikaisen ulkoisen IP-osoitteen.

Väliaikainen ulkoinen IP-osoite on väliaikainen IP-osoite, joka pysyy liitettynä virtuaalikoneeseen, kunnes virtuaalinen ilmentymä pysäytetään. Kun virtuaalinen ilmentymä käynnistetään uudelleen, uusi ulkoinen IP-osoite määritetään. Periaatteessa se on yksinkertainen tapa palveluntarjoajille hyödyntää käyttämättömiä julkisia IP-osoitteita.

Haaste tässä muussa kuin se, että julkinen IP-osoitteesi ei ole staattinen, on se, että lyhytaikainen julkinen IP on yksinkertaisesti yksityisen IP-osoitteen laajennus (tai välityspalvelin), ja tästä syystä palvelu voidaan käyttää vain portin 30386 kautta. Tämä tarkoittaa, että palvelua käytetään URL-osoitteesta , joka on 104.197.170.99:30386, mikä jos valitset selaimessasi, sinun pitäisi voida nähdä tervetulosivu.

Tämän ansiosta olemme onnistuneesti ottaneet NGINX käyttöön 3-solmun Kubernetes-klusteriimme.