Como definir o Ingress no GKE, com contêineres Spring Cloud Netflix
Eu tenho uma arquitetura de microsserviço, baseada no Spring Cloud Netflix:
- business-owner-service aponta para um aplicativo Spring Boot que é executado na porta 8763. O encaminhamento de porta é feito, business-owner-service: 80 redireciona para a porta 8763.
- atendimento ao cliente aponta para um aplicativo Spring Boot que é executado na porta 8766. atendimento ao cliente: 80 -> 8766
A arquitetura é executada corretamente se eu a invocar por meio do gateway Spring Cloud Zuul, mas desejo configurar um Ingress.
Minha configuração exata é a seguinte:
entrada
configuração do caminho de entrada
O problema é que o ingresso está com todos os serviços de back-end em não íntegros e não sei o que estou fazendo de errado. O que devo fazer para ter um Ingress funcionando?
Edit: Por comentários, tentei definir readinessProbe, para pod de atendimento ao cliente, da seguinte maneira:
Isso não funciona e, quando tento verificar a configuração atualizada, readinessProbe não está visível. Acho que é um bug, mas não tenho certeza de como verificar se o probe está atualizado ou não.
Além disso, o GET do atuador / saúde está sendo executado através do gateway Zuul:
Respostas
O que acabou sendo a solução no meu caso foi a configuração da verificação de integridade, não o readinessProbe. Atualizei a verificação de integridade que foi criada automaticamente para os serviços de back-end de ingresso para apontar para / atuator / health. Isso funcionou
O controlador de entrada do GKE realiza uma verificação de integridade com a sondagem de prontidão definida na implantação do pod. Adicione uma sonda de prontidão conforme abaixo usando o atuador de inicialização
spec:
containers:
- name: name
readinessProbe:
httpGet:
port: 8080
path: /actuator/health
initialDelaySeconds: 10