This is a demostration/PoC of running Prizem proxy/control plane, Jaeger, and Istio Mixer to connect 3 different services together.
BACKEND_URI=http://localhost:3001/message go run cmd/frontend/main.go
MESSAGE_URI=http://localhost:3002/sayHello go run cmd/backend/main.go
go run cmd/message/main.go
curl -s -u demo:demo http://localhost:3000/hello | jq
The sidecar proxies use TLS to communicate with each other so you will need to place a certificate and key in etc/backend.cert
and etc/backend.key
.
go get -u github.com/golang-migrate/migrate
go get -u github.com/lib/pq
go build -tags 'postgres' -o /usr/local/bin/migrate github.com/golang-migrate/migrate/cli
./migrate/standup.sh
go run cmd/control-plane/main.go
./register-services.sh
mkdir -p $GOPATH/src/istio.io; cd $GOPATH/src/istio.io
git clone https://github.com/istio/istio.git
cd -
go build -o ./mixs $GOPATH/src/istio.io/istio/mixer/cmd/mixs/main.go
docker run -d --name jaeger \
-e COLLECTOR_ZIPKIN_HTTP_PORT=9411 \
-p 5775:5775/udp \
-p 6831:6831/udp \
-p 6832:6832/udp \
-p 5778:5778 \
-p 16686:16686 \
-p 14268:14268 \
-p 9411:9411 \
jaegertracing/all-in-one:1.6
You can then navigate to http://localhost:16686 to access the Jaeger UI.
./mixs server --configStoreURL=fs://$PWD/config
Or if you want to hack directly on the Mixer source code...
go run $GOPATH/src/istio.io/istio/mixer/cmd/mixs/main.go server --configStoreURL=fs://$PWD/config
go run cmd/control-plane/main.go
go run cmd/proxy/main.go -ingressPort=13000 -egressPort=13010 -registerPort=13020
BACKEND_URI=http://localhost:13010/message go run cmd/frontend/main.go
go run cmd/proxy/main.go -ingressPort=13001 -egressPort=13011 -registerPort=13021
MESSAGE_URI=http://localhost:13011/sayHello go run cmd/backend/main.go
go run cmd/proxy/main.go -ingressPort=13002 -egressPort=13012 -registerPort=13022
go run cmd/message/main.go
./register-instances.sh
curl -s -k -u demo:demo -X GET \
https://localhost:13000/hello \
-H 'Accept: application/json; v=1' \
-H 'Content-Type: application/json; v=1' | jq