ccd
ccd

Reputation: 6918

Ingress without ip address

I create a ingress to expose my internal service.

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

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

NAME          HOSTS                ADDRESS   PORTS   AGE
app-ingress   example.com                    80      10h

The service show under below.

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

Upvotes: 0

Views: 513

Answers (1)

morgwai
morgwai

Reputation: 2803

Note: I'm guessing because of the other question you asked that you are trying to create an ingress on a manually created cluster with kubeadm.

As described in the docs, in order for ingress to work, you need to install ingress controller first. An ingress object itself is merely a configuration slice for the installed ingress controller.

Nginx based controller 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 MetalLB. Otherwise you can deploy ingress-nginx over a node port: see details here

Finally, servicePort in your ingress object should be 3000, same as port of your service.

Upvotes: 2

Related Questions