Hva er kubectl proxy?

Hva er kubectl proxy?
En bruker utenfor en Kubernetes -klynge kan bruke Kubernetes API Server Proxy for å koble til Cluster IPS som ellers ville være utilgjengelig. Dette muliggjør for eksempel tilgang til en tjeneste som bare er tilgjengelig i klyngens nettverk. Mellom brukeren og sluttpunktet i klyngen fungerer apiserveren som en proxy og en bastion.

Vi installerte Ubuntu 20.04 På vårt Linux -operativsystem for å kjøre instruksjonene i Kubernetes. Du kan følge den. Du må i tillegg installere Minikube -klyngen på datamaskinen din for å kjøre Kubernetes på Linux. Minikube gjør testkommandoer og programmer enkelt ved å la deg gjøre det på en metodisk måte. Som et resultat gir det den fineste Kubernetes læringsopplevelse for nykommere. Opprinnelig må Minikube -klyngen startes. Da, i Ubuntu 20.04, gå til den nylig installerte kommandolinjeterminalen. Du kan gjøre det ved å trykke på CTRL+ALT+T -snarveisnøkkelen eller skrive "terminal" i Ubuntu 20.04 Systemets søkeboks. En av de nevnte teknikkene vil starte terminalen. Minikube vil bli startet etter det. Skriv "Minikube Start" inn i terminalen for å starte Minikube. Kubernetes -klyngen vil bli lansert etter at en virtuell maskin som er i stand til å betjene en enkelt node -klynge er bygget. Det er også kompatibelt med Kubectl -miljøet. Dette vil bli brukt til å kommunisere med klyngen med det første.

$ Minikube Start

For å få tilgang til en klynge, må du vite hvor den ligger og hvilke legitimasjon du trenger. Dette gjøres vanligvis automatisk når du følger en å komme i gang, eller noen andre setter opp klyngen og gir deg legitimasjon og et sted. Config View -kommandoen viser hvor Kubectl er klar over plasseringen og legitimasjonen.

$ Kubectl Config View

Hvordan du direkte får tilgang til REST API ?

Kubectl har ansvaret for å finne og autentisere apiserveren. I proxy -modus, kjør kubectl.

  • Det er en anbefalt metode.
  • Plasseringen av den lagrede apiserveren brukes.
  • Apiserveren er autentisert.
  • Intelligent klientsiden belastningsbalansering og failover kan være oppnåelig i fremtiden.

Gi HTTP -klienten direkte plasseringen og legitimasjonen.

  • En annen teknikk er mulig.
  • Fungerer med en viss klientkode som blir forvirret når en proxy brukes.
  • For å beskytte mot MITM, må du importere et rotsertifikat til nettleseren din.

Ved hjelp av Kubectl -proxy

Denne kommandoen konfigurerer Kubectl til å fungere som en omvendt proxy. Det har ansvaret for å finne og autentisere apiserveren. Anta dette scenariet:

$ kubectl proxy -port = 8080

Et eksempel på utgangen er som følger:

Uten bruk av Kubectl -proxy

For å anskaffe standard servicekonto -token, kjør Kubectl beskrive hemmelighet ... med grep/kutt.

$ kubectl beskriver hemmelighet

API og den programmatiske tilgangen

Det er for å kunngjøre at Kubernetes nå støtter Go og Python Client Libraries. GO -klienten og Python -klienten kan bruke den samme Kubeconfig -filen som Kubectl CLI for å lokalisere og autentisere med Apisererver.

Få tilgang til API fra en pod

Når du kontakter API fra en pod, skiller prosessen med å finne og autentisere apiserveren litt. Den beste måten å lokalisere apiserveren i poden er å bruke Kubernetes.misligholde.SVC DNS -navn. Den løser seg til en tjeneste -IP, og den blir da på sin side dirigert til en apiserver.

Bruken av en servicekontoopplysning for å autentisere til apiserveren foreslås. Etter det oppbevares et symbol for den tjenestekontoen i filsystemtreet til beholderen i den pod. Et sertifikatpakke settes inn i filsystemtreet til hver beholder på/var/Run/Secrets/Kubernetes.IO/SERVICEACCOUNT/CA.CRT, hvis tilgjengelig, og bør brukes til å bekrefte Apiserver's serveringsbevis.

Til slutt, i hver container, lagres standard navneområdet for navneområder API -aktiviteter i en fil på/var/run/hemmeligheter/Kubernetes.IO/ServiceacCount/Namespace. Her er noen alternativer for å koble til et API fra en pod:

Kjør kubectl proxy som en bakgrunnsprosess i beholderen eller som en pod sidevogncontainer. Dette gjør at andre prosesser i noen av podens containere får tilgang til Kubernetes API ved hjelp av Pods LocalHost -grensesnitt.

Opprett en klient ved å kombinere Go Client -biblioteket med koden. Kubernetes med InclusterConfig () Funksjonene NewForConfig () og NewForConfig () kan brukes til å konfigurere en klynge. De har ansvaret for å finne og autentisere apiserveren.

Konklusjon

Her har vi gitt retningslinjer for KUBECTL -proxy. Hva er Kubectl Config View Common, og hvordan kan du få tilgang til REST API med og uten Kubectl -proxy. Vi har også gitt eksempler for å hjelpe deg med å forstå konseptet bedre.