Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

279
Visualizações
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?

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

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.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda