许吉友 - 运维

Envoy 二进制构建及安装

Envoy 是 C++ 写的,构建系统是用的 Bazel,为了简化初始构建并快速入门,官方提供了基于 Ubuntu 16 的 Docker 镜像,这个镜像拥有构建和静态链接Envoy所需的一切。

构建 Envoy 需要:

CentOS 7 安装最新版本 GCC 9(需要特殊方法):

$ sudo yum install centos-release-scl -y
$ sudo yum install devtoolset-9-gcc* -y

然后只能在新 bash 里面是用 gcc 9,退出这个 bash 还是用的系统的老 gcc:

$ scl enable devtoolset-9 bash
$ which gcc
$ gcc --version

CentOS 7 安装 Bazel:

$ wget https://copr.fedorainfracloud.org/coprs/vbatts/bazel/repo/epel-7/vbatts-bazel-epel-7.repo
$ sudo mv vbatts-bazel-epel-7.repo /etc/yum.repos.d
$ sudo yum install bazel -y
$ bazel version

官方提供的二进制文件

官方提供的二进制文件并没有放在官网里面,而是放在了: https://www.getenvoy.io/

Yum 安装 Envoy 二进制文件:

$ sudo yum install -y yum-utils
$ sudo yum-config-manager --add-repo https://getenvoy.io/linux/centos/tetrate-getenvoy.repo
$ sudo yum install -y getenvoy-envoy
$ envoy --version

##getenvoy

获取 getenvoy 二进制文件。

$ curl -L https://getenvoy.io/cli | bash -s -- -b /usr/local/bin 
$ getenvoy --version

在当前命令行窗口启动一个 envoy:

$ curl -L https://getenvoy.io/samples/basic-front-proxy.yaml > basic-front-proxy.yaml
$ getenvoy run standard:1.14.1 -- --config-path ./basic-front-proxy.yaml

在另一个窗口访问:

$ curl -L -s -o /dev/null -vvv -H 'Host: bing.com' localhost:15001/

getenvoy 的方便之处是可以运行各个版本的 envoy!