envoy 入門できたかな
仕組みはわかったとはいえ動的なproxyを試していなかった。これができたら入門できたとみなせるか。
ファイル
検証
1コ目のhello。アドレスは192.168.0.12:8080
# docker run --rm -d -p 8080:80 dockercloud/hello-world 308ca1514675f0abab1ec12c9a923953270b078c19a2835b58126f662312896a # curl localhost:8080 <h3>My hostname is 308ca1514675</h3> </body>
2コ目のhello。アドレスは192.168.0.12:8081
# docker run --rm -d -p 8081:80 dockercloud/hello-world 2be7dd93cf4110902e8602768a83f2f3c354048435a998ea57c0993def285059 # curl localhost:8081 <h3>My hostname is 2be7dd93cf41</h3> </body>
コントロールプレーン実行。version:0がスタート
# cd envoyprac/prac6 # go run prac6.go : 2019/07/23 20:30:28 Starting server with -listen=:20000 2019/07/23 20:30:28 start grpc server version:0
envoy 起動
# cd envoyprac/prac6 # cp envoy.yaml /tmp/envoy # docker run \ --name envoy --rm \ --net=host \ -v /tmp/envoy:/etc/envoy \ envoyproxy/envoy:v1.10.0
envoyが動作するnodeでcurl。1コ目のコンテナが反応している。
# curl -H 'Host: hello.local' 127.0.0.1 <h3>My hostname is 308ca1514675</h3> </body>
コントロールプレーンにctrl+cシグナル送信。version:1に切り替え
2019/07/23 20:30:28 Starting server with -listen=:20000 2019/07/23 20:30:28 start grpc server version:0 ^C 2019/07/23 20:30:45 stopping grpc server... 2019/07/23 20:30:45 start grpc server version:1
version:1 に切り替え後のcurl。2コ目のコンテナが反応
# curl -H 'Host: hello.local' 127.0.0.1 <h3>My hostname is 2be7dd93cf41</h3> </body>