Site icon NextGenTips

How to Install Envoy Proxy on Ubuntu 22.04

In this tutorial guide, I will show you how to install Envoy Proxy Server on Ubuntu 22.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 application 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. Let’s dive in and learn how to install Envoy on Ubuntu 22.04.

High Level Envoy Proxy features

Prerequisites

Installing Envoy proxy server on Ubuntu 22.04

Installing Envoy Proxy, we are going to use the Tetrate packages until official packages are available.

1. Update system repositories.

The first thing is to update system repositories in order to make them up to date. This will avoid running into errors in the process of installation.

$ sudo apt update && apt upgrade -y

When both updates and upgrades are complete, we can now install envoy dependencies.

2. Install Envoy proxy dependencies

Envoy requires some set of programs to run effectively such as curl for running downloads, lsb-release, etc. Let’s install the following;

sudo apt install apt-transport-https gnupg2 curl lsb-release

You will see the following output.

# output
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
curl is already the newest version (7.81.0-1).
curl set to manually installed.
lsb-release is already the newest version (11.1.0ubuntu4).
lsb-release set to manually installed.
apt-transport-https is already the newest version (2.4.5).
gnupg2 is already the newest version (2.2.27-3ubuntu2).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

3. Add GPG key to envoy repository

In order to sign the envoy program, we need to download the GPG key to self-sign it. Keys help to prove the authenticity of the program’s downloads.

curl -sL 'https://deb.dl.getenvoy.io/public/gpg.8115BA8E629CC074.key' | sudo gpg --dearmor -o /usr/share/keyrings/getenvoy-keyring.gpg

If you want, you can verify the key with the echo command, if you get an ok as the output then it’s signed therefore move ahead and install the program.

echo a077cb587a1b622e03aa4bf2f3689de14658a9497a9af2c427bba5f4cc3c4723 /usr/share/keyrings/getenvoy-keyring.gpg | sha256sum --check

# output
/usr/share/keyrings/getenvoy-keyring.gpg: OK

Now we need to add the key to sources.list.d repository. To do so use 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

We need to update our repositories again by doing an update again.

$ sudo apt update 

Whenever you update, you must see what you have added. Have look at the output below

# sample output
Get:6 https://deb.dl.getenvoy.io/public/deb/ubuntu jammy InRelease [5079 B]
Get:7 https://deb.dl.getenvoy.io/public/deb/ubuntu jammy/main amd64 Packages [4323 B]
Fetched 279 kB in 1s (362 kB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
All packages are up to date.

4. Install Envoy Proxy on Ubuntu 22.04

Now that we have completed all the prerequisites, we can now install Envoy proxy with the following command.

$ sudo apt install getenvoy-envoy

See the output below

The following NEW packages will be installed:
  getenvoy-envoy
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 16.5 MB of archives.
After this operation, 0 B of additional disk space will be used.
Get:1 https://deb.dl.getenvoy.io/public/deb/ubuntu jammy/main amd64 getenvoy-envoy amd64 1.18.2.p0.gd362e79-1p75.g76c310e [16.5 MB]
Fetched 16.5 MB in 1s (14.2 MB/s)   
Selecting previously unselected package getenvoy-envoy.
(Reading database ... 93697 files and directories currently installed.)
Preparing to unpack .../getenvoy-envoy_1.18.2.p0.gd362e79-1p75.g76c310e_amd64.deb ...
Unpacking getenvoy-envoy (1.18.2.p0.gd362e79-1p75.g76c310e) ...
Setting up getenvoy-envoy (1.18.2.p0.gd362e79-1p75.g76c310e) ...

We can check the Envoy version installed with the following command;

$ envoy --version
envoy  version: d362e791eb9e4efa8d87f6d878740e72dc8330ac/1.18.2/clean-getenvoy-76c310e-envoy/RELEASE/BoringSSL

5. Run Envoy

To check Envoy commands use the help command

$ envoy --help

Let’s run Envoy with a demo configuration file

Download a envoy-demo.yaml file

wget https://www.envoyproxy.io/docs/envoy/latest/_downloads/92dcb9714fb6bc288d042029b34c0de4/envoy-demo.yaml

Run with this 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 22.04. To learn more of these check out the Envoy documentation.

Exit mobile version