I am currently running Envoy in a Docker container, however I am unable to get access the Envoy admin server when deploying to my server, which is running Ubuntu 20.10.
When I ran the container locally on my personal machine running Windows 11, I was able to access it without issue.
Here is my Envoy config:
admin:
access_log_path: /tmp/admin_access.log
address:
socket_address:
address: 0.0.0.0
port_value: 9901
My Dockerfile:
FROM envoyproxy/envoy:v1.20-latest
COPY ./envoy.yaml /etc/envoy/envoy.yaml
CMD /usr/local/bin/envoy -c /etc/envoy/envoy.yaml -l debug
And how I'm running the Docker container:
sudo docker build -t envoy .
sudo docker run -d -p 9000:9000 -p 9901:9901 envoy
After running the container, I was able to verify that Docker was able to bind to the port, as shown in the image below.
I am trying to access the admin portal through my browser by trying to access 123.123.123.123:9901
(where 123.123.123.123
is an example public IP). I have something being served on port 80
which I can access using the server's public IP, so it looks like the issue is with my Envoy/Docker configuration. What am I doing wrong?
Turns out it was an oversight on my end. I'm using Google Compute Engine as my server VM, and when I had initially looked over the firewall settings, I saw a range of ports that were enabled, though did not realize that they were only enabled and accessible by the vm itself through localhost. I thought the port was exposed publicly, but I was mistaken. I realized this was the case because I was able to curl
the admin url via curl localhost:9901
, but was unable to access server-ip:9901
. After exposing port 9901
to public on GCP's firewall settings for my VM, it worked, so it wasn't a server config issue, it was a firewall config issue.