<p>In Kubernetes I have a load balancer and 2 web apps (with names <code>UI</code> and <code>Kuard</code>) that are both publicly available through services and ingress rules similar to:</p>
<p><strong>Kuard Service:</strong></p>
<pre><code>apiVersion: v1
kind: Service
metadata:
  annotations:
    kubectl.kubernetes.io/last-applied-configuration: |xxx
  creationTimestamp: &quot;2022-01-17T15:44:30Z&quot;
  labels:
    app: kuard
    app.kubernetes.io/managed-by: pulumi
  name: mykuard
  namespace: nginx-test-frwjnfp0
  resourceVersion: &quot;975&quot;
  uid: 819d94ca-b63d-44d5-9af9-a83da3f4bbd8
spec:
  clusterIP: 10.3.250.8
  clusterIPs:
  - 10.3.250.8
  ipFamilies:
  - IPv4
  ipFamilyPolicy: SingleStack
  ports:
  - port: 8080
    protocol: TCP
    targetPort: http
  selector:
    app: kuard
  sessionAffinity: None
  type: ClusterIP
status:
  loadBalancer: {}
</code></pre>
<p><strong>Kuard Ingress</strong></p>
<pre><code>apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    kubectl.kubernetes.io/last-applied-configuration: | xxx
    kubernetes.io/ingress.class: nginx
    pulumi.com/autonamed: &quot;true&quot;
  creationTimestamp: &quot;2022-01-17T15:44:42Z&quot;
  generation: 2
  labels:
    app: kuard
    app.kubernetes.io/managed-by: pulumi
  name: kuard-tuy3sb0v
  namespace: nginx-test-frwjnfp0
  resourceVersion: &quot;13091&quot;
  uid: 4d14f3fc-d116-4233-a717-c38d92741139
spec:
  rules:
  - host: kuard.xxx.com
    http:
      paths:
      - backend:
          service:
            name: mykuard
            port:
              name: http
        path: /
        pathType: ImplementationSpecific
status:
  loadBalancer:
    ingress:
    - ip: xxx
</code></pre>
<p>As you can see for now I can access the Kuard app by going to <code>kuard.xxx.com</code> where xxx is the public LB IP.</p>
<p>Currently I am able to navigate to the <code>Kuard</code> app from the <code>UI</code> app by hardcoding <code>kuard.xxx.com</code> in my UI app. This is stupid because I'm using the WWW address rather than using the internal cluster address.</p>
<p>Which URL (and ingress?) can I use in order to open the <code>Kuard</code> app in the browser from the <code>UI</code> app based on its internal cluster address, rather than the WWW URL?</p>
<p>I tried hardcoding <code>http://mykuard:80</code> in the &quot;UI&quot; web app because the service name for the <code>Kuard</code> app is <code>mykuard</code>, but I'm definitely missing something.</p>

<p>What you want is not possible.</p>
<p>When accessing a service from a browser, you are making request from outside your cluster. For this you need external IP.</p>
<p>The internal cluster address (<code>&lt;service-name&gt;:&lt;port&gt;</code>) is for internal communication only (e.g. pod to pod) , and is resolved by your internal DNS, to which your browser does not have access.</p>
