Sådan implementeres NGINX på en Kubernetes-klynge

Billede: Jack Wallen

Kubernetes er en af ​​de mest kraftfulde metoder til udrulning af klynger til styring og distribution af containere. NGINX er en af ​​de mest populære webservere på planeten, og også en af ​​de bedste måder at illustrere, hvordan man installerer en container. Kombiner de to, og du kan nyde en meget skalerbar webserver, klar til at hjælpe din virksomhed med at vokse.

Men hvordan distribuerer du den NGINX-container på en Kubernetes-klynge? Jeg viser dig det. Et advarsel, jeg bruger en Antsle cloud-server, som gør implementeringen af ​​Kubernetes-platformen utroligt enkel. Operativsystemet, der er vært for Kubernetes, er Ubuntu Server 16.04. Jeg antager, at du allerede har Kubernetes i gang. For dem, der ikke har en Antsle, og som først skal installere Kubernetes, kan du tjekke, hvordan du gør her. Til denne demonstration implementerer jeg tre virtuelle maskiner:

  • kubernetes kl. 192.168.1.190
  • kubernetes2 kl. 192.168.1.191
  • kubernetes3 kl. 192.168.1.192

Maskinen med værtsnavnet kubernetes fungerer som min master, mens kubernetes2 / 3 fungerer som knudepunkter.

Lad os distribuere med det ude af vejen.

Opsætning af værtsnavne

Den første ting, vi skal gøre, er at kortlægge værtsnavne på hver maskine. Så for hver maskine udsteder vi kommandoen sudo nano / etc / hosts og kortlægger den anden maskins IP-adresse til værtsnavnet. Så på kubernetes vil mine værts tilføjelser være:

 192.168.1.191 kubernetes2 192.168.1.192 kubernetes3 

På kubernetes2 vil tilføjelserne være:

 192.168.1.190 kubernetes 192.168.1.192 kubernetes3 

På kubernetes3 vil tilføjelserne være:

 192.168.1.190 kubernetes 192.168.1.191 kubernetes2 

Når du har foretaget tilføjelserne, skal du gemme og lukke filen. Sørg for, at du kan pinge hver server via værtsnavnet.

Initialiser masternoden

Med alt på plads er det tid til at initialisere masternoden. Log ind på kubernetes (min hovednode) og udsted kommandoen:

 sudo kubeadm init --pod-netværk-cidr = 192.168.1.0 / 16 --apiserver-advert-adresse = 192.168.1.190 

Det kan tage et minut eller to at udføre denne kommando, da de nødvendige billeder muligvis skal trækkes. Når den er færdig, skal du se lignende output vist i figur A.

Figur A

Vores Master Node er implementeret.

Inkluderet i output er dit token og opdagelses-token. Sørg for at kopiere dem ned (eller bare kopiere hele join-kommandoen), da du har brug for disse oplysninger for at forbinde knudepunkterne til klyngen.

Det næste trin er tydeligt beskrevet i output fra initialiseringskommandoen. Du skal effektivt udstede følgende kommandoer:

 mkdir -p ~ / .kube sudo cp -i /etc/kubernetes/admin.conf ~ / .kube / config sudo chown $ (id -u): $ (id -g) ~ / .kube / config 

Når du har udstedt ovenstående kommandoer, skal du kontrollere nodenes status (der vil kun være en på dette tidspunkt) med kommandoen:

 kubectl få noder 

Du skal se masternoden angivet ( figur B ).

Figur B

Vores hovednode er vist.

Årsagen til, at vores Master Node er angivet som ikke klar, er fordi den endnu ikke har en Container Networking Interface (CNI). Lad os implementere en Calico CNI til masteren med kommandoen:

 sudo kubectl Apply -f https://docs.projectcalico.org/v2.6/getting-started/kubernetes/installation/hosted/kubeadm/1.6/calico.yaml 

Lad os sørge for, at Calico blev indsat korrekt med kommandoen kubectl, få pods - alle navneområder .

Output fra ovennævnte kommando ( figur C ) skal vise Calico kører.

Fig

Calico kører faktisk nu.

Kør kubectl og hent noder igen, og du skal se, at hovednoden nu er angivet som Klar.

Tilføjelse af noder til klyngen

Derefter går vi over til vores knudepunkter for at føje dem til klyngen. Kan du huske kombinationskommandoen i output fra kommandoen Master Node-initialisering? Gå over til kubernetes2 og udsend den kommando, der ser sådan ud:

 sudo kubeadm join - token 6779e1.164c5515cf412fdf 192.168.1.190:6443 --discovery-token-ca-cert-hash sha256: c3e413050e40675280bbf8e37a99c53a1481f82d714469b51b77ed17b38015de 

Når denne kommando er afsluttet, skal du gøre det samme på kubernetes3. Når du har udstedt join-kommandoen på dine noder, skal du gå tilbage til Master Node og udstede kommandoen kubectl få noder, og du skal se alle noder klar ( figur D ).

Figur D

Alle vores noder er klar til at arbejde.

Sæt NGINX-containeren i klyngen

Det er nu tid til at implementere NGINX-containeren. Fra hovednoden udgiver du kommandoen:

 sudo kubectl oprette implementering nginx - image = nginx 

Derefter stiller vi NGINX-containeren til rådighed for netværket med kommandoen:

 sudo kubectl oprette service nodeport nginx - tcp = 80: 80 

Udsted kommandoen kubectl, få svc for at se din NGINX-liste (samt den tildelte port, givet af Kubernetes - figur E )

Figur E

Vores NGINX-service kører.

Lad os teste dette med kommandoen:

 krølle kubernetes3: 30655 

BEMÆRK: 30655-porten blev tildelt under kommandoen til oprettelse af service. Det vil være unikt for din implementering.

Output fra curl-kommandoen skal vise HTML på siden NGINX index.html. Hvis du ser, tillykke, er din NGINX-container blevet indsat i din Kubernetes-klynge. Hvis du peger en webbrowser til http: // IP_OF_NODE: ASSIGNED_PORT (Hvor IP_OF_NODE er en IP-adresse på en af ​​dine noder, og ASSIGNED_PORT er den port, der er tildelt under kommandoen for oprettelse af service), skal du se NGINX-velkomstsiden!

Grundlæggende implementering

Hvad vi har gjort, er en meget grundlæggende Kubernetes-installation af NGINX på en klynge. Der er så meget mere at lære om at bruge Kubernetes. Dette skal dog give dig en god start såvel som at hjælpe dig med let at implementere NGINX på din Kubernetes-klynge.

Datacenter Trends Nyhedsbrev

DevOps, virtualisering, hybrid sky, opbevaring og driftseffektivitet er blot nogle af de datacenteremner, vi vil fremhæve. Leveres mandage og onsdage

Tilmeld dig i dag

© Copyright 2020 | mobilegn.com