Tenha certeza que o cluster k8s do minikube está em execução e com o contexto corretamente selecionado.
As imagens Docker das aplicações simple-spring-grpc-client-app
e simple-spring-grpc-server-app
estão disponíveis para uso no meu repositório Docker, mas caso queira consultar o código fonte acesse o repositório spring-grpc-k8s-example-source-code.
- 1º Execute
kubectl apply -f grpc-server-deployment.yaml
para subir os POD's da aplicação servidor; - 2º Execute
kubectl apply -f grpc-client-deployment.yaml
para subir os POD's da aplicação cliente; - 3º Execute
kubectl apply -f grpc-server-service.yaml
para subir o service com load balancer do servidor; - 4º Execute
kubectl apply -f grpc-client-service.yaml
para subir o service com load balancer do client. - 5º Após a inicialização das aplicações execute
minikube service spring-grpc-client-lb --url
e pegue a URL gerada.
Para conferir o status dos POD's execute kubectl get pods
Para facilitar os testes, dois enpoints REST (GET
e POST
) foram disponibilizados. Utilize a URL gerada no passo 5 com o seguinte payload para criar uma nova pessoa:
{
"name": "Any Name",
"email": "a@a.com"
}
O fluxo da requisição acima será o seguinte:
Para buscar um pessoa criada basta adicionar o ID gerado e fazer uma chamada GET /id
na URL anterior.
A aplicação servidora possui um banco H2 em memória, portanto, consistência de dados salvos não é um foco neste exemplo :).