microsoft / azure-container-apps

Roadmap and issues for Azure Container Apps
MIT License
363 stars 29 forks source link

Unable to access Container App that is inside a VNet integrated Container Environment #1304

Open kamalsivalingam opened 7 hours ago

kamalsivalingam commented 7 hours ago

Please provide us with the following information:

This issue is a: (mark with an x)

Issue description

Hi, I am unable to access using http a container that is inside a VNet integrated container environment. When i add vnet integration, looks like a load balancer is auto created and the envoy proxy is registering TCP ports 80 and 443. Does this mean all the requests go through envoy proxy? In that case what do i need to add to the URL to access one of the container apps inside the container environment using http?

Steps to reproduce

  1. ..
  2. ..

Expected behavior [What you expected to happen.]

Actual behavior [What actually happened.]

Screenshots
If applicable, add screenshots to help explain your problem.

Additional context

Ex. Did this issue occur in the CLI or the Portal?

simonjj commented 3 hours ago

In your situation, when you enable VNet integration for Azure Container Apps, traffic flows through the Azure-managed Envoy proxy, which handles routing to your container apps. Here’s a detailed explanation of how ingress works with a VNet and what you need to consider:

1. Ingress Through Envoy Proxy:

When you enable ingress (whether internal or external), Azure Container Apps uses Envoy as a proxy to route the traffic:

2. Accessing Your App via HTTP:

If you’ve enabled internal ingress (private endpoint within a VNet), the container app is only accessible from within your VNet. To access it:

3. Important Network Configurations:

4. Accessing Your App (Internal Ingress):

5. Debugging Access Issues:

Summary:

Yes, all your HTTP/HTTPS requests go through the Envoy proxy when using ingress in Azure Container Apps. If you are trying to access the app using a URL, you need to ensure that the DNS and network settings inside your VNet are properly configured to allow internal resolution. You'll use the same standard URL for your app (http://<app_name>.<environment_name>.azurecontainerapps.io), but it will only work from inside the VNet or a peered network.

If you want external access, you will need to enable external ingress and configure the necessary security settings for public exposure.