Weboldal keresés

Az Nginx üzembe helyezése Kubernetes-fürtön


Legutóbbi cikkünkben megvitattuk a Kubernetes-fürt beállítását és futtatását, valamint azt, hogyan telepíthetjük az NGINX szolgáltatást a fürtünkön.

Ezt a telepítést egy nyilvános felhőszolgáltató által üzemeltetett virtuális gépen fogom futtatni. Mint sok nyilvános felhőszolgáltatás esetében, sokan általában nyilvános és privát IP-sémát tartanak fenn a virtuális gépeikhez.

Tesztkörnyezet

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 telepítése Kubernetes-fürtön

Ezt a telepítést a főcsomópontról fogjuk futtatni.

Kezdjük a fürt állapotának ellenőrzésével. Minden csomópontnak KÉSZ állapotban kell lennie.

kubectl get nodes

Létrehozzuk az NGINX telepítését az NGINX lemezkép használatával.

kubectl create deployment nginx --image=nginx

Most láthatja a telepítés állapotát.

kubectl get deployments

Ha további részleteket szeretne látni a telepítésről, futtassa a leírás parancsot. Például meghatározható, hogy a központi telepítés hány replikája fut. A mi esetünkben azt várjuk, hogy 1 replikája fut (azaz 1/1 replikák).

kubectl describe deployment nginx

Most, hogy az Nginx-telepítés aktív, érdemes lehet az NGINX szolgáltatást az interneten elérhető nyilvános IP-címnek kitenni.

Az Nginx szolgáltatás közzététele nyilvános hálózaton

A Kubernetes számos lehetőséget kínál a szolgáltatás közzétételéhez a Kubernetes szolgáltatástípusok nevű szolgáltatás alapján, és ezek a következők:

  1. ClusterIP – Ez a szolgáltatástípus általában egy belső IP-címen teszi elérhetővé a szolgáltatást, amely csak a fürtön belül érhető el, és esetleg csak a fürt csomópontjain belül.
  2. NodePort – Ez a legalapvetőbb lehetőség arra, hogy szolgáltatását elérhetővé tegye a fürtön kívül, egy adott porton (úgynevezett NodePort) a fürt minden csomópontján. Ezt a lehetőséget rövidesen bemutatjuk.
  3. LoadBalancer – Ez az opció a különböző szolgáltatók által kínált külső terheléselosztási szolgáltatásokat használja fel, hogy hozzáférést biztosítson az Ön szolgáltatásához. Ez egy megbízhatóbb lehetőség, ha a szolgáltatás magas rendelkezésre állásáról gondolkodik, és az alapértelmezett hozzáférésen túl több funkcióval is rendelkezik.
  4. Külső név – Ez a szolgáltatás a forgalmat a fürtön kívüli szolgáltatásokra irányítja át. Mint ilyen, a szolgáltatás egy DNS-névre van leképezve, amely a fürtön kívül is tárolható. Fontos megjegyezni, hogy ez nem használ proxyt.

Az alapértelmezett szolgáltatástípus a ClusterIP.

A mi forgatókönyvünkben a NodePort szolgáltatástípust szeretnénk használni, mert mind nyilvános, mind privát IP-címünk van, és egyelőre nincs szükségünk külső terheléselosztóra. Ezzel a szolgáltatástípussal a Kubernetes ezt a szolgáltatást a 30000+ portokhoz rendeli hozzá.

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

Futtassa a get svc parancsot a szolgáltatás és a szabaddá vált portok összefoglalójának megtekintéséhez.

kubectl get svc

Most a curl paranccsal ellenőrizheti, hogy az Nginx oldal minden csomóponton elérhető-e.

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

Amint látja, az „ÜDVÖZÖLJÜK AZ NGINX-EN! ” oldal elérhető.

Rövid ideig tartó NYILVÁNOS IP-címek elérése

Amint azt már észrevette, a Kubernetes jelentése szerint nincs regisztrálva aktív nyilvános IP-címem, vagy inkább nincs regisztrálva KÜLSŐ IP-címem.

kubectl get svc

Ellenőrizzük, hogy valóban igaz-e, hogy nincs-e KÜLSŐ IP-címem csatolva az interfészekhez IP paranccsal.

ip a

Nincs nyilvános IP, amint látja.

Ahogy korábban említettük, jelenleg ezt a központi telepítést egy nyilvános felhőszolgáltató által kínált virtuális gépen futtatom. Tehát, bár nincs külön nyilvános IP-címhez rendelt interfész, a virtuálisgép-szolgáltató ideiglenes külső IP-címet adott ki.

Az efemer külső IP-cím egy ideiglenes IP-cím, amely a virtuális géphez a virtuális példány leállításáig csatlakozik. A virtuális példány újraindításakor új külső IP-cím kerül hozzárendelésre. Alapvetően ez egy egyszerű módja annak, hogy a szolgáltatók kihasználják a tétlen nyilvános IP-címeket.

A kihívás itt – azon a tényen kívül, hogy a nyilvános IP-címe nem statikus – az, hogy az Efemer nyilvános IP-cím egyszerűen a privát IP kiterjesztése (vagy proxyja), és ezért a szolgáltatás csak a 30386-os porton érhető el. Ez azt jelenti, hogy a szolgáltatás a URL-en érhető el, azaz 104.197.170.99:30386, amelyet ha bejelöl. böngészőjében látnia kell az üdvözlő oldalt.

Ezzel sikeresen telepítettük az NGINX-et a 3 csomópontos Kubernetes-fürtünkön.