Puncte:-1

(Kubernetes) Redirecționarea portului de la un port NodePort către un port în afara domeniului său

drapel in

Am un pod care rulează pe Kubernetes pe o mașină locală (Mac-ul meu) și este definit pentru a fi accesibil prin nodePort 30036

  - protocol: TCP
    targetPort: 8081
    nodePort: 30036

Aș dori să pot accesa acest nod folosind un port în afara intervalelor care au fost definite pentru utilizarea nodePort (30000-32768). Ceva să spunem ca 8080. Care sunt opțiunile mele? Mulțumesc!

Puncte:0
drapel cn

Deoarece nu există informații despre soluția exactă Kubernetes utilizată, ar putea fi dificil să identificăm soluția exactă.

Presupunând că există 2 opțiuni:

  • Docker Desktop cu Kubernetes
  • Minikube

Câteva soluții pentru ei ar putea fi:


Docker Desktop cu Kubernetes

Serviciu de tip Echilibrarea greutății

Clusterul dvs. Kubernetes poate utiliza Serviciu de tip Echilibrarea greutății și fiți conectat la dvs gazdă locală (Mac-ul dvs gazdă locală).

Puteți verifica acest lucru rulând următorul exemplu:

  • $ kubectl creați implementarea nginx --image=nginx
  • $ kubectl expune implementarea nginx --port=80 --type=LoadBalancer
  • $ kubectl obține servicii
NUME TIP CLUSTER-IP EXTERN-IP PORT(E) Vârsta
kubernetes ClusterIP 10.96.0.1 <niciunul> 443/TCP 10d
nginx LoadBalancer 10.111.214.48 localhost 80:30032/TCP 77s
  • curl 127.0.0.1:80 / curl kubernetes.docker.internal:80
<-- REDACTED --> 
<title>Welcome to nginx!</title>
<-- REDACTED --> 

O notă secundară!

Îl puteți modifica în continuare utilizând --port (port pe dvs gazdă locală) și --targetPort (portul care ascultă în dvs Pod) parametrii la utilizare $ kubectl expune...

Schimba NodePort intervalul de porturi

Puteți urma acest răspuns în profunzime care vă va arăta cum vă puteți modifica kubeapi-server pentru a schimba NodePort interval de porturi (prin conectarea la Docker VM):

Utilizare Intrare controlor

De asemenea, puteți utiliza un Intrare controler care se va lega de Mac-ul tău gazdă locală și vă va permite să utilizați Intrare resursă (este în principal pentru HTTP/HTTPS dar cu unele ajustări poate trece TCP/UDP trafic). Aici puteți găsi mai multe informații despre acest subiect:


Minikube

Cu Minikube pot exista o mulțime de variații din cauza --conducător auto folosit.

Schimba NodePort intervalul de porturi

Încă o dată, puteți urma răspunsul de mai jos pentru a schimba minikube NodePort interval de porturi:

Utilizare metalb

De asemenea, puteți utiliza metalb pentru a aloca adresele pentru dvs Serviciu de tip Echilibrarea greutății.

Pașii pentru a o face ar fi următorii:

  • $ minikube start --driver=hyperkit
  • $ suplimentele minikube activează metallb
  • $ lista de noduri minikube (observați adresa IP a dvs minikube)
  • Suplimentele $ minikube configurează metallb (Puneți intervalul alocat lângă minikube ip ca:
    • minikube ip: 192.168.64.11
    • metalb start: 192.168.64.100
    • capăt metalb: 192.168.64.110
  • Creați volumul de lucru și expuneți-l cu Serviciu de tip Echilibrarea greutății
  • $ curl SVC_EXTERNAL_IP:PORT

O notă secundară!

--driver=hyperkit a fost folosit din cauza:

Deoarece utilizați un driver Docker pe darwin, terminalul trebuie să fie deschis pentru a-l rula.

Acest mesaj este legat de accesul dvs minikube exemplu când se utilizează --driver=docker și sunt limitări. Trebuie să utilizați serviciul minikube SERVICE_NAME pentru a accesa Serviciu (și terminalul trebuie să funcționeze în timp ce sunteți la el).


O notă secundară!

Consider că, ca măsură de soluție, puteți folosi și a $ kubectl port-forward.

Resurse aditionale:

moonkotte avatar
drapel in
Salut @pavel-zagalsky. Acesta [răspunde la întrebarea dvs.](https://stackoverflow.com/help/someone-answers)?

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.