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


Viimeisessä artikkelissamme olemme keskustelleet Kubernetes-klusterin perustamisesta ja ajamisesta, keskustellaan siitä, miten voimme ottaa NGINX-palvelun käyttöön klusterissamme.

Suoritan tämän käyttöönoton virtuaalikoneella, jota isännöi julkinen pilvipalvelu. Kuten monien julkisten pilvipalvelujen kohdalla, monet ylläpitävät yleensä virtuaalikoneidensa julkista ja yksityistä IP-järjestelmää.

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 tulisi olla VALMIS tilassa.

# kubectl get nodes

Luomme NGINX-käyttöönoton NGINX-kuvan avulla.

# kubectl create deployment nginx --image=nginx

Näet nyt käyttöönoton tilan.

# kubectl get deployments

Jos haluat lisätietoja käyttöönotosta, voit suorittaa kuvaus-komennon. Esimerkiksi on mahdollista määrittää, kuinka monta kopiota asennuksesta on käynnissä. Meidän tapauksessamme odotamme nähdä yhden käynnissä olevan kopion (ts. 1/1 kopiota).

# kubectl describe deployment nginx

Nyt Nginx-käyttöönotto on aktiivinen, saatat haluta altistaa NGINX-palvelun Internetin julkiselle IP-osoitteelle.

Kubernetes tarjoaa useita vaihtoehtoja paljastettaessa palvelua Kubernetes-palvelutyypiksi kutsutun ominaisuuden perusteella, ja ne ovat:

  1. ClusterIP - Tämä palvelutyyppi paljastaa palvelun yleensä sisäisellä IP-osoitteella, joka on tavoitettavissa vain klusterin sisällä ja mahdollisesti vain klusterisolmuissa.
  2. NodePort - Tämä on kaikkein perustavanlaatuisin vaihtoehto paljastaa, että palvelusi on käytettävissä klusterin ulkopuolella, tietyssä portissa (nimeltään NodePort) jokaisessa klusterin solmussa. Havainnollistamme tätä vaihtoehtoa pian.
  3. LoadBalancer - Tämä vaihtoehto hyödyntää ulkoisten kuormituksen tasapainotuspalveluiden tarjoamia palveluntarjoajia. Tämä on luotettavampi vaihtoehto ajatellessasi palvelun korkeaa saatavuutta, ja sillä on enemmän ominaisuuksia kuin oletusyhteydet.
  4. ExternalName - Tämä palvelu ohjaa liikenteen uudelleen klusterin ulkopuolisiin palveluihin. Sellaisena palvelu on siis yhdistetty DNS-nimeen, joka voidaan isännöidä ulos klusteristasi. On tärkeää huomata, että tämä ei käytä välityspalvelinta.

Oletuspalvelutyyppi on ClusterIP.

Skenaariossa haluamme käyttää NodePort Service -tyyppiä, koska meillä on sekä julkinen että yksityinen IP-osoite, emmekä tarvitse toistaiseksi ulkoista kuormituksen tasapainotinta. Tämän palvelutyypin avulla Kubernetes määrittää tämän palvelun 30000+ -alueen portteihin.

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

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

# kubectl get svc

Nyt voit varmistaa, että Nginx-sivu on tavoitettavissa kaikilla solmuilla käpristyskomennolla.

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

Kuten näette, "TERVETULOA NGINX: ään!" sivulle pääsee.

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

# kubectl get svc

Tarkistetaan, onko se totta, että minulla ei ole ULKOISIA IP-osoitteita liitettyinä käyttöliittymiini IP-komennolla.

# ip a

Ei julkista IP-osoitetta, kuten näet.

Kuten aiemmin mainitsin, suoritan tällä hetkellä tätä käyttöönottoa virtuaalikoneessa, jonka tarjoaa julkinen pilvipalveluntarjoaja. Joten vaikka julkiselle IP: lle ei ole määritetty mitään erityistä käyttöliittymää, virtuaalikoneiden tarjoaja on antanut lyhyen ulkoisen IP-osoitteen.

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

Tässä haasteena on se, että julkinen IP-osoitteesi ei ole staattinen, että Ephemeral Public IP on yksinkertaisesti yksityisen IP: n laajennus (tai välityspalvelin), ja tästä syystä palvelua käytetään vain portissa 30386. Tämä tarkoittaa, että palvelua käytetään URL-osoitteella , joka on 104.197.170.99:30386, ja jos tarkistat selaimesi, sinun pitäisi pystyä näkemään tervetulosivu.

Sen avulla olemme ottaneet NGINXin onnistuneesti käyttöön 3-solmun Kubernetes-klusterissamme.