Ingress for any Kubernetes environment

While developing, testing and running workloads it’s always important to have an easy way to access those applications. Every cloud load balancer slightly differs in configuration, pricing and ease of use.

With Web Relay ingress controller it doesn’t matter if your application runs on Minikube, GKE, AWS or Azure; all applications get same endpoints with exactly the same ingress configuration.

Relay Ingress with Kuard

Here, we add ingress controller from a hosted manifest and provide credentials via relay ingress init command. Webhook Relay ingress controller can be found in webrelay-ingress namespace.

To do it on your own, you will need:

Add ingress controller to your environment

Run:

relay ingress init

This command:

Get your tunnel domain name

$ relay tunnel create --group webrelay-ingress hello-ingress
2p4ptkh9vutgm8tqavigja.webrelay.io<---->http://127.0.0.1

Here, 2p4ptkh9vutgm8tqavigja.webrelay.io is your tunnel endpoint, set it in ingress.yaml file.

Add Kuard to your cluster

In this example we are using Kuard workload. Deployment file and ingress configuration is available in https://github.com/webrelay/ingress repository under examples directory. Clone it:

git clone https://github.com/webrelay/ingress
cd ingress/examples

Now, edit ingress.yaml with your Host.

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: webrelay
name: relay-ingress
namespace: default
spec:
rules:
- host: 2p4ptkh9vutgm8tqavigmp.webrelay.io # <- set your tunnel host here
http:
paths:
- path: /
backend:
serviceName: kuard
servicePort: 8080

Then create Kuard and ingress resource:

kubectl create -f kuard.yaml -f ingress.yaml

See whether ingress is ready

relay ingress ls

Deployment files for ingress controller and example workload can be found here.

More details on setup and troubleshooting are available on Ingress documentation page.