In this tutorial, I will show you how to install the Envoy proxy server on Ubuntu 20.04.
Envoy is an L7 proxy and communication bus designed for large modern service-oriented architecture. The project was born out of the belief that the network should be transparent to applications. When network and applications problems occur, it should be easy to determine the source of the problem.
Envoy is an open-source edge and service proxy, designed for cloud-native applications.
High Level Envoy features
- Its known for its advanced load balancing technique. It implements load balancing in a single place and have them accessible to any application.
- It has front/edge proxy support.
- It has best in class observability
- It has gRPC support.
- Has support for HTTP L7 routing
- It supports HTTP/2
- L3/L4 filter architecture. Envoy acts as a L3/L4 proxy
- It support use of API for configuration management
Installing Envoy proxy server on Ubuntu 20.04
1. Run system update
Running system updates will make your system repositories up to date. Open your terminal and run the following command;
$ sudo apt update && apt upgrade -y
Next, you need to envoy dependencies
2. Install Envoy proxy server dependencies
Envoy requires some dependencies to run effectively. Install the following dependencies
$ sudo apt install apt-transport-https gnupg2 curl lsb-release
Sample output
output
Reading package lists... Done
Building dependency tree
Reading state information... Done
lsb-release is already the newest version (11.1.0ubuntu2).
lsb-release set to manually installed.
curl is already the newest version (7.68.0-1ubuntu2.7).
curl set to manually installed.
apt-transport-https is already the newest version (2.0.6).
gnupg2 is already the newest version (2.2.19-3ubuntu2.1).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
From the following output, you can see nothing was installed because Ubuntu 20.04 comes as a default.
3. Import GPG key
In order to sign Envoy, we need to import the GPG key with the following command.
$ curl -sL 'https://deb.dl.getenvoy.io/public/gpg.8115BA8E629CC074.key' | sudo gpg --dearmor -o /usr/share/keyrings/getenvoy-keyring.gpg
Now you can verify if the key is signed with the echo command. If it returns ok you know it is signed.
$ echo a077cb587a1b622e03aa4bf2f3689de14658a9497a9af2c427bba5f4cc3c4723 /usr/share/keyrings/getenvoy-keyring.gpg | sha256sum --check
This command should return ok as the output.
Run system updates again for changes to take effect.
Now we need to add the key to the system with the following command.
$ echo "deb [arch=amd64 signed-by=/usr/share/keyrings/getenvoy-keyring.gpg] https://deb.dl.getenvoy.io/public/deb/ubuntu $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/getenvoy.list
4. Install Envoy proxy server on Ubuntu 20.04
Lastly, let’s install Envoy with the following command;
$ sudo apt install getenvoy-envoy
Now you can check the Envoy version with the following command;
$ envoy --version
envoy version: d362e791eb9e4efa8d87f6d878740e72dc8330ac/1.18.2/clean-getenvoy-76c310e-envoy/RELEASE/BoringSSL
Run Envoy
To check Envoy commands use the help command
$ envoy --help
Let’s run Envoy with a demo configuration file
Create a demo.yaml file and run with the following command
$ envoy -c envoy-demo.yaml
-c tells envoy the path to its initial configuration
To know if Envoy is proxying, use the following
$ curl -v localhost:10000
Conclusion
We have learned how to install Envoy proxy on Ubuntu 20.04. To enjoy more of these tutorials keep checking this blog for more.