• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

224
Views
Estilo de implementación de Kubernetes para varios ingresos en el mismo nombre de host. ¿Son equivalentes las configuraciones divididas y la configuración única?

Tengo dos aplicaciones: app1 y app2 . Cada uno alojado en un repositorio separado. Cada uno está completamente desvinculado entre sí. Me gustaría:

  1. Servirlos desde el mismo nombre de host, solo que en diferentes rutas.
  2. Cada aplicación es independiente de las demás, al igual que sus scripts de implementación.

Mi enfoque actual es tener un archivo yaml por cada aplicación, que describa Deployment , Service e Ingress . Estoy usando nginx para administrar la parte de ingreso.

app1.yaml contiene la siguiente especificación de ingreso:

 --- apiVersion: networking.k8s.io/v1beta1 kind: Ingress metadata: name: app1-ingress annotations: kubernetes.io/ingress.class: nginx nginx.ingress.kubernetes.io/proxy-read-timeout: "1800" nginx.ingress.kubernetes.io/proxy-send-timeout: "1800" nginx.ingress.kubernetes.io/rewrite-target: /$2 nginx.ingress.kubernetes.io/configuration-snippet: | rewrite ^(/apps/app1)$ $1/ redirect; # ZZZ spec: rules: - host: myhost http: paths: - path: /apps/app1(/?)(.*) backend: serviceName: app1-service servicePort: 8080

app2.yaml contiene el equivalente exacto, con las entradas correspondientes modificadas. Cuando quiero implementar app1 , entro en su repositorio y hago lo siguiente:

 kubectl apply -f app1.yaml

Cuando quiero implementar app2 , entro en su repositorio y hago:

 kubectl apply -f app2.yaml

La alternativa es tener app1.yaml y app2.yaml simplemente definiendo el servicio y luego tener un archivo adicional que contenga la especificación de Ingress:

 --- apiVersion: networking.k8s.io/v1beta1 kind: Ingress metadata: name: ingress annotations: kubernetes.io/ingress.class: nginx nginx.ingress.kubernetes.io/proxy-read-timeout: "1800" nginx.ingress.kubernetes.io/proxy-send-timeout: "1800" nginx.ingress.kubernetes.io/rewrite-target: /$2 nginx.ingress.kubernetes.io/configuration-snippet: | rewrite ^(/apps/.*)$ $1/ redirect; # ZZZ spec: rules: - host: myhost http: paths: - path: /apps/app1(/?)(.*) backend: serviceName: app1-service servicePort: 8080 paths: - path: /apps/app2(/?)(.*) backend: serviceName: app2-service servicePort: 8080

Supongamos que voy a agregar más y más aplicaciones app3 , app4 , etc. en el futuro.

Mi pregunta es: ¿son estos dos estilos de especificación equivalentes o se prefiere un estilo por razones técnicas o de mejores prácticas?

about 3 years ago · Santiago Trujillo
1 answers
Answer question

0

Su pregunta se basa bastante en la opinión y es imposible dar una respuesta inequívoca.

Según mi experiencia, es mejor usar el ingreso por un servicio. Durante un período de tiempo más largo, es cómodo: imagine que un día necesita agregar/cambiar algunas anotaciones en el ingreso relacionadas con un servicio específico o grupo de servicios; deberá dividir su ingreso en pocos archivos. Creará un lío. Por eso es mejor mantener separadas las definiciones de ingreso, especialmente si tiene aplicaciones alojadas en diferentes repositorios.

También verifique esta pregunta (se trata de hosts, no de rutas, pero es muy similar a su pregunta). Puede encontrar aquí mucha información útil.

about 3 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 Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error