Skip to main content

🌐 Ingress

The Ingress is the cluster's "reception desk": it receives visits on port 80/443 and routes each domain or path to the right Service. This way you publish several sites with a single IP.

The SaveinCloud cluster already comes with two Ingress Controllers installed: Traefik and NGINX.

info

The Ingress is created with kubectl. The Nuvion Panel is used to look up the IP that will receive the traffic (step 4).


🚀 Before you start​

  • Have cluster access configured (see Cluster Access).
  • Have an application with a Service. Create one by following the Services page (steps 1 and 2).
  • Have a domain, if you want to access it by name (optional for testing).

🚀 1. See the available controllers​

kubectl get ingressclass

Note the name of the class you want to use (for example, nginx or traefik).

🚀 2. Create the Ingress file​

Create the file web-ingress.yaml:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: web-ingress
spec:
ingressClassName: nginx # replace with traefik, if you prefer
rules:
- host: app.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: web-svc
port:
number: 80

🚀 3. Apply and verify​

kubectl apply -f web-ingress.yaml
kubectl get ingress web-ingress

🚀 4. Find the Ingress IP​

Go to Compute > Floating IPs (or Compute > Load Balancers) and find the IP associated with the cluster.

Ingress IP in the panel

🚀 5. Point the domain​

In your DNS provider's panel, create an A record for app.example.com pointing to the IP from step 4.

🚀 6. Test​

With DNS configured, open http://app.example.com in your browser.

To test without DNS:

curl -H "Host: app.example.com" http://INGRESS-IP

✅ How to know it worked​

The Welcome to nginx! page appears.

❗ Common problems​

SymptomCauseSolution
404 Not FoundHost or path differs from the IngressCheck host and path
502 or 503Service without podsRun kubectl get endpoints web-svc
Does not openDNS has not propagated or port 80 is blockedReview DNS and the Security Groups
Empty ADDRESS on the IngressIncorrect classCheck the ingressClassName

🧹 Cleanup​

kubectl delete ingress web-ingress

➡️ Next step: Configuration (ConfigMap)

🧠 Questions?​

Talk to our SaveinCloud technical support team!