trying service mesh consul
Run it!
docker compose down && docker compose up -d --build
See sidecar logs
docker logs service-a-sidecar
docker logs service-b-sidecarSee services logs
docker logs service-a
docker logs service-band you should see output like this
Start service-a
error request to service-b Get "http://localhost:9191": dial tcp [::1]:9191: connect: connection refused
error request to service-b Get "http://localhost:9191": read tcp 127.0.0.1:40218->127.0.0.1:9191: read: connection reset by peer
error request to service-b Get "http://localhost:9191": read tcp 127.0.0.1:40232->127.0.0.1:9191: read: connection reset by peer
error request to service-b Get "http://localhost:9191": read tcp 127.0.0.1:38508->127.0.0.1:9191: read: connection reset by peer
SUCCESS!
service-b called: Hello from service B
service-b listening on 127.0.0.1:8080
Stop consul1 and consul2 to simulate failure
docker stop consul1 consul2Restart service-a service-a-sidecar service-b-sidecar to make them connect to consul3 consul4 consul5 and reload stale certificates
docker restart service-a service-a-sidecar service-b-sidecarSee service-a still able to call service-b
docker logs service-a-sidecar
docker logs service-aInspect network traffic between service-a and service-b. to see if it really encrypted
docker compose exec service-a tcpdump -i eth0 -Adocker compose exec netshoot tcpdump -i eth0 -Adocker compose exec netshoot netstat -tulpn