がべーじこれくしょん

技術系とかいろいろ

GetEnvoyを使ってみる

tl;dr GetEnvoyというCLIツールを使うと手軽にenvoyを立ち上げられるらしいので使ってみる

GetEnvoyとは

www.getenvoy.io

L4/L7のソフトウェアプロキシであるEnvoyを手元で手軽にテストするためのツールです。 Envoyは、近年様々な企業で、主にサービスメッシュを構成するコンポーネントとして使用されることが増えてきました。 Envoyの知名度と比較すると、このGetEnvoyというツールに関しては、あまり国内での知名度は高くない気がします。 実際、Googleで検索すると、日本語のページはほとんどヒットしません。

初めて聞く方も多いと思いますが、envoyを手軽に試すという文脈においては、非常に便利なツールです。特にenvoyの機能検証などの際にはかなり重宝します。

この記事では、実際にGetEnvoyの導入と使用方法について説明します。

インストール

公式サイトから抜粋してます。Docker上で動かしたいという人は公式サイトの方を見てください。

www.getenvoy.io

簡単な方法

以下コマンドで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でガンガン報告してください。

github.com