https://github.com/maxnilz/grpc-istio-demo
A demo for showcasing gRPC with Istio.
https://github.com/maxnilz/grpc-istio-demo
envoyfilters grpc grpc-json-transcoder grpc-web istio service-mesh
Last synced: 6 months ago
JSON representation
A demo for showcasing gRPC with Istio.
- Host: GitHub
- URL: https://github.com/maxnilz/grpc-istio-demo
- Owner: maxnilz
- License: mit
- Created: 2019-06-10T13:54:45.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2023-07-24T14:06:28.000Z (almost 3 years ago)
- Last Synced: 2025-04-21T09:05:20.047Z (over 1 year ago)
- Topics: envoyfilters, grpc, grpc-json-transcoder, grpc-web, istio, service-mesh
- Language: Go
- Homepage:
- Size: 26.1 MB
- Stars: 3
- Watchers: 0
- Forks: 0
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# gRPC Istio Demo
Based on Istio 1.1.7

## How to start
1. install minikube
2. install pv & pvc (used by envoy.grpc_json_transcoder filter, mounting the proto_descriptor)
3. install istio by using the istio's installer in this repo
4. kubectl label namespace default istio-injection=enabled
5. kubectl apply -f istio/idp.yaml
6. kubectl apply -f istio/server.yaml
7. kubectl apply -f istio/web-ui.yaml
8. kubectl apply -f istio/gateway.yaml
9. kubectl apply -f istio/envoyfilter*.yaml
10. make create-istio-frontend-ingressgateway (used by the front-end application only which have no envoy.ext_authz applied)
11. kubectl apply -f istio/frontend-gateway.yaml
12. make run-auth-server
13. make run-idp-example-app
- *Note: Since I'm using minikube, there is an IP address is hardcode `192.168.39.224` & port `31380` as well*
- *Note: There is a domain `xianchao.me` point to my local machine with the network-interface IP address*
## Play & verify
1. Set Http header `Authorization Bearer IDToken` before send any request
2. Send http POST request to `/demo-server/v1/sayhello` & `/demo-server/v1/emoji` via `curl` or `postman`
3. Send grpc-web request to `/demo-server/proto.EmojiService/InsertEmojis` via browser
## Resources
You can learn more about this project from the following articles.
* https://maxnilz.com/posts/003-grpcweb/