I vores sidste artikel har vi diskuteret hvordan man opsætter og kører en Kubernetes -klynge, lad os diskutere, hvordan vi kan implementere NGINX service på vores klynge.
Jeg vil køre denne implementering på en virtuel maskine, der hostes af en offentlig cloud -udbyder. Som det er med mange offentlige skytjenester, opretholder mange generelt en offentlig og privat IP -ordning for deres virtuelle maskiner.
Master Node - Offentlig IP: 104.197.170.99 og privat IP: 10.128.15.195. Worker Node 1 - Offentlig IP: 34.67.149.37 og privat IP: 10.128.15.196. Worker Node 2 - Offentlig IP: 35.232.161.178 og privat IP: 10.128.15.197.
Vi kører denne implementering fra master-node.
Lad os begynde med at kontrollere status for klyngen. Alle dine noder skal være i en PARAT stat.
# kubectl få noder.
Vi opretter en implementering af NGINX bruger NGINX billede.
# kubectl opret implementering nginx --image = nginx.
Du kan nu se status for din implementering.
# kubectl få implementeringer.
Hvis du gerne vil se flere detaljer om din implementering, kan du køre beskrive kommando. For eksempel er det muligt at bestemme, hvor mange kopier af implementeringen der kører. I vores tilfælde forventer vi at se en kopi af 1 kører (dvs. 1/1 kopier).
# kubectl beskriver implementering nginx.
Nu er din Nginx -implementering aktiv, og du vil måske afsløre NGINX service til en offentlig IP, der kan nås på internettet.
Kubernetes tilbyder flere muligheder, når du udsætter din service baseret på en funktion kaldet Kubernetes Service-typer, og de er:
Standardtjenesten er ClusterIP.
I vores scenario vil vi bruge NodePort Service-type fordi vi har både en offentlig og privat IP -adresse, og vi ikke har brug for en ekstern belastningsbalancer for nu. Med denne servicetype tildeler Kubernetes denne service på havne på 30000+ rækkevidde.
# kubectl opret service nodeport nginx --tcp = 80: 80.
Kør få svc kommando for at se en oversigt over tjenesten og de viste havne.
# kubectl få svc.
Nu kan du kontrollere, at Nginx siden kan nås på alle noder ved hjælp af curl kommando.
# curl master-node: 30386. # curl node-1: 30386. # curl node-2: 30386.
Som du kan se, er "VELKOMMEN TIL NGINX!”Kan nås.
Som du måske har bemærket, Kubernetes rapporterer, at jeg ikke har nogen aktiv offentlig IP-registreret, eller rettere ingen EXTERNAL-IP-registreret.
# kubectl få svc.
Lad os kontrollere, om det virkelig er sandt, at jeg ikke har en ekstern IP knyttet til mine grænseflader ved hjælp af IP -kommando.
# ip a.
Ingen offentlig IP som du kan se.
Som tidligere nævnt kører jeg i øjeblikket denne implementering på en Virtuel maskine tilbydes af en offentlig cloud -udbyder. Så selvom der ikke er tildelt en særlig grænseflade til en offentlig IP, har VM -udbyderen udstedt en flygtig ekstern IP -adresse.
En flygtig ekstern IP -adresse er en midlertidig IP -adresse, der forbliver knyttet til VM'en, indtil den virtuelle forekomst stoppes. Når den virtuelle forekomst genstartes, tildeles en ny ekstern IP. Grundlæggende sagt er det en enkel måde for tjenesteudbydere at udnytte inaktive offentlige IP'er.
Udfordringen her, bortset fra det faktum, at din offentlige IP ikke er statisk, er, at Flygtig offentlig IP er simpelthen en udvidelse (eller proxy) af den private IP, og derfor vil tjenesten kun få adgang til port 30386. Det betyder, at der er adgang til tjenesten på webadressen, det er 104.197.170.99:30386, som hvis du tjekker din browser, skal du kunne se velkomstsiden.
Med det har vi succesfuldt implementeret NGINX på vores 3-node Kubernetes-klynge.