Få Kubernetes Ingress Log for Debugging

Fa Kubernetes Ingress Log For Debugging



Vet du hva Get Kubernetes-inngangsloggen for feilsøking er? Nettverksproblemer blir stadig mer utfordrende å diagnostisere ettersom distribusjonene blir større og større. Denne opplæringen viser deg hvordan du bruker ingress-nginx kubectl-plugin for å feilsøke tilgangen til applikasjonen din gjennom ingress-kontrolleren. La oss først se definisjonen av Kubernetes-inngang, som er viktig for å forstå hovedemnet bedre.

Hva er Kubernetes Ingress?

Definisjonen av inntrenging er 'inngang' i bokstavelig forstand.







I Kubernetes-fellesskapet er det også sant. En trafikk som kommer inn i klyngen omtales som ingress, mens en trafikk som forlater klyngen omtales som egress.




Som en innebygd Kubernetes-ressurs er inngang sammenlignbar med pods, distribusjoner osv. Du kan holde tritt med DNS-rutingskonfigurasjonene ved å bruke ingress. Inngangskontrolleren er det som utfører rutingen. Det gjør den ved å lese rutingsreglene rett fra ingress-objektene som er lagret i etcd. Uten Kubernetes-inngang kan du eksponere en applikasjon for omverdenen ved å inkludere en tjeneste Type Load Balancer i distribusjonene.



Hvordan fungerer Kubernetes Ingress?

Det er to viktige ting du må være klar over. Disse er:





Kubernetes Ingress Resource

Denne ressursen har ansvaret for å vedlikeholde alle DNS-rutingsregler i klyngen. DNS-rutingsreglene er spesifisert i Kubernetes Ingress-ressursen, en innebygd Kubernetes-ressurs. Du tilordner med andre ord den eksterne DNS-trafikken til de interne Kubernetes-tjenestedestinasjonene.



Kubernetes Ingress Controller

Ved å få tilgang til DNS-reglene som implementeres av inngangsressursene, er Kubernetes-inngangskontrollerne (Nginx/HAProxy, etc.) ansvarlige for ruting.

Implementeringen av Ingress Controller er ikke hjemmehørende i Kubernetes. Som et resultat kan det ikke være en klyngestandard.

For at inntrengningsreglene skal fungere, må vi konfigurere en ingresskontroller. Det er mange åpen kildekode- og forretningsinngangskontrollere på markedet. En klynges versjon av en omvendt nettproxy-server fungerer som en inngangskontroller. Denne Kubernetes-baserte omvendte proxy-serveren er utsatt for en lastbalanseringstjeneste.

Hva er Ingress Controller?

Et klyngekjørende program kalt Ingress Controller konfigurerer en HTTP-lastbalanser etter Ingress-ressursene. Lastbalanseren kan være en eksternt distribuert maskinvare eller skylastbalanserer, eller den kan fungere som programvare i klyngen. Ulike Ingress Controller-implementeringer er nødvendig for ulike lastbalansere.

Når du bruker NGINX, er både lastbalanseren og ingress-kontrolleren utplassert i en pod.

Vær oppmerksom på at en aktiv ingress-kontroller må være til stede i klyngen for at Ingress-ressursen skal fungere.

Ingress-kontrollere blir ikke automatisk lansert med en klynge, i motsetning til de andre kontrolltypene som fungerer som en komponent av kube-controller-manager binæren.

Forutsetninger:

Du trenger en Kubernetes-klynge, og du må konfigurere kommandolinjeverktøyet kubectl for å koble til klyngen din. Du kan gi kommandoene til Kubernetes-klynger ved å bruke kubectl-kommandolinjeverktøyet. Applikasjonene kan distribueres, klyngressursene kan inspiseres og administreres, og loggene kan sees ved hjelp av kubectl.

Hvis du for øyeblikket ikke har en klynge, kan Minikube brukes til å konstruere en. Minikube er en lokal Kubernetes som har som mål å gjøre læring og utvikling av Kubernetes enkelt.

Kubernetes kan nås med bare én kommando hvis du har et virtuelt maskinmiljø eller et Docker-miljø (eller lignende kompatibelt). La oss begynne trinn-for-trinn-prosessen nå:

Trinn 1: Start Minikube

Ved å bruke minikube-verktøyet kan du kjøre Kubernetes lokalt. Minikube kjører en alt-i-ett eller multi-node lokal Kubernetes-klynge på datamaskinen din for daglig utviklingsarbeid eller for å teste Kubernetes (inkludert Windows, Linux-PCer og macOS). Her er kommandoen for å starte minikuben:

> start minikube



Trinn 2: Aktiver Ingress Controller

Vi viser hvordan du aktiverer NGINX Ingress-kontrolleren i dette trinnet. Utfør følgende kommando:

> minikube-tillegg muliggjøre inntrenging



Trinn 3: Bekreft om NGINX Ingress Controller fungerer eller ikke

Nå er det viktig å bekrefte om NGINX-kontrolleren er aktiv eller ikke. Kommandoen som følger kan brukes til å bekrefte at:

> kubectl få pods -n ingress-nginx



Vær oppmerksom på at du kanskje ikke legger merke til at disse podene fungerer som de skal på opptil ett minutt. Utgangen vises i forrige bilde.

Trinn 4: Lag en Hello World-app

Her bruker vi følgende kommando for å lage en distribusjon:

> kubectl lage distribusjonsweb --bilde =gcr.io / google-eksempler / hei-app: 1.0



Kommandoen som utføres og resultatene er vedlagt i forrige bilde. I utgangen kan 'hei-app' sees.

Trinn 5: Vis distribusjonen

Nå vil vi vise deg en kommando for å avsløre en spesifikk distribusjon. Kommandoen er nevnt som følger:

> kubectl expose distribusjon Kalsoom  - -type =NodePort --havn = 8080



Du kan se 'service/kalsoom-eksponert'-utgangen i forrige bilde.

Trinn 6: Besøk tjenesten via NodePort

Dette er et viktig trinn der vi viser deg hvordan du kan besøke den opprettede tjenesten gjennom NodePort. Kommandoen for å oppnå dette formålet er gitt i følgende:

> minikube-tjeneste Kalsoom  --url



Kommandoen sammen med utgangen er vedlagt i forrige bilde.

Nå gjør Minikube IP-adressen og NodePort det enkelt å se eksempelappen. Du kan bruke Ingress-ressursen for å få tilgang til appen i det følgende trinnet.

Trinn 7: Opprett en ingress

Her oppretter vi en ingress som overfører trafikken til tjenesten din. Kommandoen er nevnt som følger:

> kubectl gjelder -f https: // k8s.io / eksempler / service / nettverk / eksempel-ingress.yaml



Som du kan se, utføres kommandoen vellykket.

Trinn 8: Bekreft IP-adressen

Vi sjekker om IP-adressen er satt eller ikke. For det bruker vi følgende gitte kommando:

> kubectl komme inn



I utdataene skal du se en IPv4-adresse i ADRESSE-kolonnen.

Konklusjon

En oversikt over loggingen til NGINX Ingress Controller er gitt i denne artikkelen. For å oppsummere, er tilgangs- og feilloggene for NGINX sammen med loggene fra Ingress Controller-prosessen som oppretter NGINX-konfigurasjonen og laster inn NGINX på nytt for å bruke den, gjort tilgjengelig av NGINX Ingress Controller.