Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

234
Views
¿Cómo conectar la interfaz con el respaldo en K8S?

Tengo una aplicación que tiene dos implementaciones de k8s llamadas onboarding-server y frontend onboarding-server es un servidor de nodo y frontend es una aplicación de reacción que se crea e implementa con Nginx.

Aquí hay un fragmento que se devuelve cuando ejecuto kubectl get all

 NAME READY STATUS RESTARTS AGE pod/frontend-deployment-578f898ffb-cc7gc 1/1 Running 0 15s pod/node-deployment-7f4754fdf5-fnmls 1/1 Running 0 7d10h NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/frontend-service LoadBalancer 10.100.200.64 10.167.198.105 80:31167/TCP 13d service/node-service LoadBalancer 10.100.200.71 10.167.199.136 3200:32276/TCP 13d NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/frontend-deployment 1/1 1 1 5d12h deployment.apps/node-deployment 1/1 1 1 7d10h NAME DESIRED CURRENT READY AGE replicaset.apps/frontend-deployment-578f898ffb 1 1 1 17s replicaset.apps/node-deployment-7f4754fdf5 1 1 1 7d10h

Y mi configuración nginx.conf se parece a esto

 upstream node-service{ server node-service; } server { listen 80; location / { root /usr/share/nginx/html; index index.html index.htm; try_files $uri $uri/ /index.html; } location = /api { proxy_pass http://node-service; } error_page 404 /index.html; location = / { root /usr/share/nginx/html; internal; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } }

Ahora trato de hablar con mi servicio backend desde el frontend usando esta URL

/api/onboarding/v1/user/login

Mi entendimiento de Nginx es que cuando solicito /api debería redirigirme a http://node-service/api/onboarding/v1/user/login y, por lo tanto, debería devolver la respuesta adecuada. Pero lo que recibo es

 Fetch failed loading: POST http://192.168.5.21/api/onboarding/v1/user/login

¿Cómo puedo conectarme al servicio de nodo desde Nginx?

EDIT 1: Una cosa que olvidé mencionar es que cuando entro al contenedor usando el comando exec puedo obtener la respuesta apropiada usando

 curl http://192.168.5.21/api/onboarding/v1/user/login
over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Para el enrutamiento basado en rutas en Kubernetes, le sugiero que eche un vistazo a Ingress . Puede usar Nginx Ingress para kubernetes en su caso. Podrá mapear servicios según la ruta.

Por ejemplo,

 apiVersion: extensions/v1beta1 kind: Ingress metadata: name: demo-ingress annotations: { 'kubernetes.io/ingress.class': nginx } spec: rules: - host: foo.bar.com http: paths: - path: /foo backend: serviceName: demo-backend servicePort: 80

Ahora, como está utilizando nginx como proxy inverso, puede exponer su servicio de back-end como Type NodePort y usar la IP externa de su servicio de back-end en lugar de usar el nombre del servicio:

 location = /api { proxy_pass http://external-ip:port; }
over 4 years ago · Santiago Trujillo Report

0

En su FE puede implementar esta configuración:

 server { listen 80; location / { include /etc/nginx/mime.types; try_files $uri $uri/ /index.html; } location /be-svc/ { proxy_pass "http://<be-svc>.<namespace>/"; } }

Después de eso, su Dockerfile puede ser algo como esto:

 FROM nginx:1.14 COPY build /usr/share/nginx/html RUN rm /etc/nginx/conf.d/default.conf COPY config/nginx/sites-available/api.conf /etc/nginx/conf.d

Y simplemente coloque la entrada como de costumbre frente a su servicio FE. ¡Espero eso ayude!

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!