Some specs about my OS:
OS Name: Microsoft Windows 11 ProOS version: 10.0.22635 N/D build 22635wsl cat /proc/version> Linux version 5.15.153.1-microsoft-standard-WSL2 (root@941d701f84f1) (gcc (GCC) 11.2.0, GNU ld (GNU Binutils) 2.37) #1 SMP Fri Mar 29 23:14:13 UTC 2024
Some additional info about my environment:
docker -v > Docker version 24.0.5, build 24.0.5-0ubuntu1~20.04.1kubectl version > Client Version: v1.30.2> Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3> Server Version: v1.30.0minikube version> version: v1.33.1
What I want to achieve is to set up an Ingress node following this guide.
Starting from a fresh environment without any minikube, I begin with minikube start
and follow the instructions later on (I omit all the steps since I do not see any weird errors, but these can be added if needed).
Without any issue I can curl
bot web and web2 after that I create the tunnel, i.e.:
Terminal 1 (which will remain active in background)
minikube service web --url> http://127.0.0.1:46129> ❗ Because you are using a Docker driver on linux, the terminal needs to be open to run it.
Terminal2 (accessible even via browser)
curl http://127.0.0.1:46129> Hello, world!> Version: 1.0.0> Hostname: web-56bb54ff6d-96zmr
The same applies for web2
, except that obviously the port and the output change. This is coherent with the guide.
However, when it comes to the part where I should create an Ingress to redirect the traffic after web2
is created, it does not work. I correctly start the service:
kubectl get ingress> NAME CLASS HOSTS ADDRESS PORTS AGE> example-ingress nginx hello-world.example 192.168.49.2 80 11s
Then, I created in one terminal the minikube tunnel
and prompt the password like the note suggests:
✅ Tunnel successfully started📌 NOTE: Please do not close this terminal as this process must stay alive for the tunnel to be accessible ...❗ The service/ingress example-ingress requires privileged ports to be exposed: [80 443]🔑 sudo permission will be asked for it.🏃 Starting tunnel for service example-ingress.
However, when I try to be redirected to either web/web2, I do not see the expected output:
curl --resolve "hello-world.example:80:127.0.0.1" -i http://hello-world.example
But get the following HTML page (not accessible via browser):
HTTP/1.1 200 OKDate: Wed, 26 Jun 2024 10:46:02 GMTServer: Apache/2.4.41 (Ubuntu)Last-Modified: Fri, 03 Feb 2023 15:50:49 GMTETag: "2aa6-5f3cda537d076"Accept-Ranges: bytesContent-Length: 10918Vary: Accept-EncodingContent-Type: text/html<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><!-- Modified from the Debian original for Ubuntu Last updated: 2016-11-16 See: https://launchpad.net/bugs/1288690 --><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Apache2 Ubuntu Default Page: It works</title><style type="text/css" media="screen"> * { margin: 0px 0px 0px 0px; padding: 0px 0px 0px 0px; } body, html { padding: 3px 3px 3px 3px; background-color: #D8DBE2; font-family: Verdana, sans-serif; font-size: 11pt; text-align: center; } div.main_page { position: relative; display: table; width: 800px; margin-bottom: 3px; margin-left: auto; margin-right: auto; padding: 0px 0px 0px 0px; border-width: 2px; border-color: #212738; border-style: solid; background-color: #FFFFFF; text-align: center; } div.page_header { height: 99px; width: 100%; background-color: #F5F6F7; } div.page_header span { margin: 15px 0px 0px 50px; font-size: 180%; font-weight: bold; } div.page_header img { margin: 3px 0px 0px 40px; border: 0px 0px 0px; } div.table_of_contents { clear: left; min-width: 200px; margin: 3px 3px 3px 3px; background-color: #FFFFFF; text-align: left; } div.table_of_contents_item { clear: left; width: 100%; margin: 4px 0px 0px 0px; background-color: #FFFFFF; color: #000000; text-align: left; } div.table_of_contents_item a { margin: 6px 0px 0px 6px; } div.content_section { margin: 3px 3px 3px 3px; background-color: #FFFFFF; text-align: left; } div.content_section_text { padding: 4px 8px 4px 8px; color: #000000; font-size: 100%; } div.content_section_text pre { margin: 8px 0px 8px 0px; padding: 8px 8px 8px 8px; border-width: 1px; border-style: dotted; border-color: #000000; background-color: #F5F6F7; font-style: italic; } div.content_section_text p { margin-bottom: 6px; } div.content_section_text ul, div.content_section_text li { padding: 4px 8px 4px 16px; } div.section_header { padding: 3px 6px 3px 6px; background-color: #8E9CB2; color: #FFFFFF; font-weight: bold; font-size: 112%; text-align: center; } div.section_header_red { background-color: #CD214F; } div.section_header_grey { background-color: #9F9386; } .floating_element { position: relative; float: left; } div.table_of_contents_item a, div.content_section_text a { text-decoration: none; font-weight: bold; } div.table_of_contents_item a:link, div.table_of_contents_item a:visited, div.table_of_contents_item a:active { color: #000000; } div.table_of_contents_item a:hover { background-color: #000000; color: #FFFFFF; } div.content_section_text a:link, div.content_section_text a:visited, div.content_section_text a:active { background-color: #DCDFE6; color: #000000; } div.content_section_text a:hover { background-color: #000000; color: #DCDFE6; } div.validator { }</style></head><body><div class="main_page"><div class="page_header floating_element"><img src="/icons/ubuntu-logo.png" alt="Ubuntu Logo" class="floating_element"/><span class="floating_element"> Apache2 Ubuntu Default Page</span></div><!-- <div class="table_of_contents floating_element"><div class="section_header section_header_grey"> TABLE OF CONTENTS</div><div class="table_of_contents_item floating_element"><a href="#about">About</a></div><div class="table_of_contents_item floating_element"><a href="#changes">Changes</a></div><div class="table_of_contents_item floating_element"><a href="#scope">Scope</a></div><div class="table_of_contents_item floating_element"><a href="#files">Config files</a></div></div>--><div class="content_section floating_element"><div class="section_header section_header_red"><div id="about"></div> It works!</div><div class="content_section_text"><p> This is the default welcome page used to test the correct operation of the Apache2 server after installation on Ubuntu systems. It is based on the equivalent page on Debian, from which the Ubuntu Apache packaging is derived. If you can read this page, it means that the Apache HTTP server installed at this site is working properly. You should <b>replace this file</b> (located at<tt>/var/www/html/index.html</tt>) before continuing to operate your HTTP server.</p><p> If you are a normal user of this web site and don't know what this page is about, this probably means that the site is currently unavailable due to maintenance. If the problem persists, please contact the site's administrator.</p></div><div class="section_header"><div id="changes"></div> Configuration Overview</div><div class="content_section_text"><p> Ubuntu's Apache2 default configuration is different from the upstream default configuration, and split into several files optimized for interaction with Ubuntu tools. The configuration system is<b>fully documented in /usr/share/doc/apache2/README.Debian.gz</b>. Refer to this for the full documentation. Documentation for the web server itself can be found by accessing the <a href="/manual">manual</a> if the <tt>apache2-doc</tt> package was installed on this server.</p><p> The configuration layout for an Apache2 web server installation on Ubuntu systems is as follows:</p><pre>/etc/apache2/|-- apache2.conf| `-- ports.conf|-- mods-enabled| |-- *.load| `-- *.conf|-- conf-enabled| `-- *.conf|-- sites-enabled| `-- *.conf</pre><ul><li><tt>apache2.conf</tt> is the main configuration file. It puts the pieces together by including all remaining configuration files when starting up the web server.</li><li><tt>ports.conf</tt> is always included from the main configuration file. It is used to determine the listening ports for incoming connections, and this file can be customized anytime.</li><li> Configuration files in the <tt>mods-enabled/</tt>,<tt>conf-enabled/</tt> and <tt>sites-enabled/</tt> directories contain particular configuration snippets which manage modules, global configuration fragments, or virtual host configurations, respectively.</li><li> They are activated by symlinking available configuration files from their respective *-available/ counterparts. These should be managed by using our helpers<tt> a2enmod, a2dismod,</tt><tt> a2ensite, a2dissite,</tt> and<tt> a2enconf, a2disconf</tt>. See their respective man pages for detailed information.</li><li> The binary is called apache2. Due to the use of environment variables, in the default configuration, apache2 needs to be started/stopped with <tt>/etc/init.d/apache2</tt> or <tt>apache2ctl</tt>.<b>Calling <tt>/usr/bin/apache2</tt> directly will not work</b> with the default configuration.</li></ul></div><div class="section_header"><div id="docroot"></div> Document Roots</div><div class="content_section_text"><p> By default, Ubuntu does not allow access through the web browser to<em>any</em> file apart of those located in <tt>/var/www</tt>,<a href="http://httpd.apache.org/docs/2.4/mod/mod_userdir.html" rel="nofollow">public_html</a> directories (when enabled) and <tt>/usr/share</tt> (for web applications). If your site is using a web document root located elsewhere (such as in <tt>/srv</tt>) you may need to whitelist your document root directory in <tt>/etc/apache2/apache2.conf</tt>.</p><p> The default Ubuntu document root is <tt>/var/www/html</tt>. You can make your own virtual hosts under /var/www. This is different to previous releases which provides better security out of the box.</p></div><div class="section_header"><div id="bugs"></div> Reporting Problems</div><div class="content_section_text"><p> Please use the <tt>ubuntu-bug</tt> tool to report bugs in the Apache2 package with Ubuntu. However, check <a href="https://bugs.launchpad.net/ubuntu/+source/apache2" rel="nofollow">existing bug reports</a> before reporting a new bug.</p><p> Please report bugs specific to modules (such as PHP and others) to respective packages, not to the web server itself.</p></div></div></div><div class="validator"></div></body></html>
Moreover, following the Ubuntu guide and typing:
curl --resolve "hello-world.example:80:$( minikube ip )" -i http://hello-world.example > curl: (28) Failed to connect to hello-world.example port 80: Connection timed out
it fails due to a timeout. Any hint on how to fix and how to correctly access the service?
Note that:
echo $( minikube ip )> 192.168.49.2
EDIT:Some more outputs
kubectl get ingress> NAME CLASS HOSTS ADDRESS PORTS AGE> example-ingress nginx hello-world.example 192.168.49.2 80 18mping hello-world.example> PING hello-world.example.homenet.myprovider.it (127.0.0.1) 56(84) bytes of data.> 64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.021 ms> 64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.020 ms
Note that I have not modified /etc/hosts/
in ubuntu.
Moreover,
minikube ssh> docker@minikube:~$ curl hello-world.example> > curl: (6) Could not resolve host: hello-world.example