tl;dr GetEnvoyというCLIツールを使うと手軽にenvoyを立ち上げられるらしいので使ってみる
GetEnvoyとは
L4/L7のソフトウェアプロキシであるEnvoyを手元で手軽にテストするためのツールです。 Envoyは、近年様々な企業で、主にサービスメッシュを構成するコンポーネントとして使用されることが増えてきました。 Envoyの知名度と比較すると、このGetEnvoyというツールに関しては、あまり国内での知名度は高くない気がします。 実際、Googleで検索すると、日本語のページはほとんどヒットしません。
初めて聞く方も多いと思いますが、envoyを手軽に試すという文脈においては、非常に便利なツールです。特にenvoyの機能検証などの際にはかなり重宝します。
この記事では、実際にGetEnvoyの導入と使用方法について説明します。
インストール
公式サイトから抜粋してます。Docker上で動かしたいという人は公式サイトの方を見てください。
簡単な方法
以下コマンドでGetEnvoyのバイナリを入手できます。インストール先を変えたい場合は、/usr/local/bin
の箇所を変更してください。
curl -L https://getenvoy.io/cli | bash -s -- -b /usr/local/bin
Homebrew経由
Homebrew経由でも、GetEnvoyのリポジトリをtapすることでインストールが可能です。
brew tap tetratelabs/getenvoy
tapした後に、インストールを実行してください。
brew install getenvoy
使い方
GetEnvoyでは、以下3つのコマンドが使用可能です。
- fetch
- list
- run
fetch
指定したplatform/versionに対応するenvoyをダウンロードするコマンドです。standard:<version>
といった感じで指定すると、対応するバージョンのビルド済みバイナリをGetEnvoyがfetchしてきてくれます。
$ getenvoy fetch standard:1.11.1 fetching standard:1.11.1/darwin [Fetching Envoy] 100% |████████████████████████████████████████| [1s:0s]
基本的に後述のrun
を実行した際に、ローカルにないバイナリは自動的にGetEnvoyが取ってきてくれます。そのため、あまりこのコマンド単体で使うことはないとは思います。
ちなみに、fetchしてきたバイナリは、~/.getenvoy/builds/standard/<version>/<platform>/
以下にそれぞれ保存されるみたいです。
list
GetEnvoyで使用できるenvoyのversionとplatformの一覧を取得するコマンドです。ここで表示されているREFERENCE
と呼ばれる部分が、先程のfetch
コマンドに渡す際の形になっています。
$ getenvoy list REFERENCE FLAVOR VERSION standard:1.14.1/linux-glibc standard 1.14.1 standard:1.14.1/darwin standard 1.14.1 standard:1.13.1/linux-glibc standard 1.13.1 standard:1.13.1/darwin standard 1.13.1 standard:1.13.0/linux-glibc standard 1.13.0 standard:1.13.0/darwin standard 1.13.0 standard:1.12.3/linux-glibc standard 1.12.3 standard:1.12.3/darwin standard 1.12.3 standard:1.12.2/linux-glibc standard 1.12.2 standard:1.12.2/darwin standard 1.12.2 standard:1.12.1/linux-glibc standard 1.12.1 standard:1.12.1/darwin standard 1.12.1 standard:1.12.0/linux-glibc standard 1.12.0 standard:1.12.0/darwin standard 1.12.0 standard:1.11.2/linux-glibc standard 1.11.2 standard:1.11.2/darwin standard 1.11.2 standard:1.11.1/linux-glibc standard 1.11.1 standard:1.11.1/darwin standard 1.11.1 standard:1.11.0/linux-glibc standard 1.11.0 standard:1.11.0/darwin standard 1.11.0
run
指定したバージョンのenvoyを実行するコマンドです。指定したバージョンがローカルにない場合は、GetEnvoyが自動でfetchしてきてくれます。
実行する際は、standard:<version>
というような感じで、実行するenvoyのバージョンを指定します。また、実行中のデバッグ情報が~/.getenvoy/debug
にtar.gz形式で格納されます。
$ getenvoy run standard:1.11.1 -- --config-path ./envoy-config.yaml
おわりに
かなりニッチな使用用途を想定したCLIツールですが、envoyを使っている or 検証段階の方は、ぜひ試してみてください。 feature requestやbug reportは常に受け付けてるみたいなので、GitHubのIssueでガンガン報告してください。