<p>I create a ingress to expose my internal service.</p>

<pre><code>apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: app-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
    - host: example.com
      http:
        paths:
        - path: /app
          backend:
            serviceName: my-app
            servicePort: 80
</code></pre>

<p>But when I try to get this ingress, it show it has not ip address.</p>

<pre><code>NAME          HOSTS                ADDRESS   PORTS   AGE
app-ingress   example.com                    80      10h
</code></pre>

<p>The service show under below.</p>

<pre><code>apiVersion: v1
kind: Service
metadata:
  name: my-app
spec:
  selector:
    app: my-app
  ports:
  - name: my-app
    nodePort: 32000
    port: 3000
    targetPort: 3000
  type: NodePort
</code></pre>

ccd
<p>Note: I'm guessing because of the <a href="https://stackoverflow.com/q/59999345/1220560">other question you asked</a> that you are trying to create an ingress on a manually created cluster with <code>kubeadm</code>.</p>

<p>As described in <a href="https://kubernetes.io/docs/concepts/services-networking/ingress/#prerequisites" rel="nofollow noreferrer">the docs</a>, in order for ingress to work, you need to install <a href="https://kubernetes.io/docs/concepts/services-networking/ingress-controllers/" rel="nofollow noreferrer">ingress controller</a> first. An ingress object itself is merely a configuration slice for the installed ingress controller.</p>

<p><a href="https://kubernetes.github.io/ingress-nginx/" rel="nofollow noreferrer">Nginx based controller</a> is one of the most popular choice. Similarly to services, in order to get a single failover-enabled VIP for your ingress, you need to use <a href="https://metallb.universe.tf/" rel="nofollow noreferrer">MetalLB</a>. Otherwise you can deploy ingress-nginx over a node port: see details <a href="https://kubernetes.github.io/ingress-nginx/deploy/baremetal/" rel="nofollow noreferrer">here</a></p>

<p>Finally, <code>servicePort</code> in your ingress object should be 3000, same as <code>port</code> of your service.</p>
