Kubernetes Ingress non-root path 404 Not Found

Your ingress definition creates rules that proxy traffic from the {path} to the {backend.serviceName}{path}. In your case, I believe the reason it’s not working is that /app is proxied to app-service:80/app but you’re intending on serving traffic at the / root. Try adding this annotation to your ingress resource: nginx.ingress.kubernetes.io/rewrite-target: / Source: https://github.com/kubernetes/ingress-nginx/tree/master/docs/examples/rewrite

Minikube with ingress example not working

Here’s what worked for me: minikube start minikube addons enable ingress minikube addons enable ingress-dns Wait until you see the ingress-nginx-controller-XXXX is up and running using Kubectl get pods -n ingress-nginx Create an ingress using the K8s example yaml file Update the service section to point to the NodePort Service that you already created Append … Read more

How can I check what ingress controller I have on my kube and what is the default

You can check for pods implementing ingress controllers (actually with ingress in the name) with: kubectl get pods –all-namespaces | grep ingress And services exposing them with: kubectl get service –all-namespaces | grep ingress As @Prafull Ladha says, you won’t have an ingress controller by default. The documentation states that in “environments other than GCE/Google … Read more

Kubernetes Nginx Ingress not finding service endpoint

I discovered what I was doing wrong. In my application definition I was using name as my selector selector: matchLabels: name: hello-world template: metadata: labels: name: hello-world Whereas in my service I was using app selector: app: hello-world After updating my service to use app, it worked selector: matchLabels: app: hello-world template: metadata: labels: app: … Read more

Simple ingress from host with microk8s?

TLDR Update the annotation to be kubernetes.io/ingress.class: public Why For MicroK8s v1.21, running microk8s enable ingress Will create a DaemonSet called nginx-ingress-microk8s-controller in the ingress namespace. If you inspect that, there is a flag to set the ingress class: – args: … omitted … – –ingress-class=public … omitted … Therefore in order to work with … Read more

Microk8s dashboard using nginx-ingress via http not working (Error: `no matches for kind “Ingress” in version “extensions/v1beta1″`)

To fix the error error: unable to recognize “ingress.yaml”: no matches for kind “Ingress” in version “extensions/v1beta1 you need to set apiVersion to the networking.k8s.io/v1. From the Kubernetes v1.16 article about deprecated APIs: NetworkPolicy in the extensions/v1beta1 API version is no longer served – Migrate to use the networking.k8s.io/v1 API version, available since v1.8. Existing … Read more

How to use ConfigMap configuration with Helm NginX Ingress controller – Kubernetes

I’ve managed to display what YAML gets executed by Helm using the: –dry-run –debug options at the end of helm install command. Then I’ve noticed that there controller is executed with the: –configmap={namespace-where-the-nginx-ingress-is-deployed}/{name-of-the-helm-chart}-nginx-ingress-controller. In order to load your ConfigMap you need to override it with your own (check out the namespace). kind: ConfigMap apiVersion: v1 … Read more

What’s the difference between exposing nginx as load balancer vs Ingress controller?

There is a difference between ingress rule (ingress) and ingress controller. So, technically, nginx ingress controller and LoadBalancer type service are not comparable. You can compare ingress resource and LoadBalancer type service, which is below. Generally speaking: LoadBalancer type service is a L4(TCP) load balancer. You would use it to expose single app or service … Read more

Can I set custom ports for a Kubernetes ingress to listen on besides 80 / 443?

No. From the kubernetes documentation: An Ingress does not expose arbitrary ports or protocols. Exposing services other than HTTP and HTTPS to the internet typically uses a service of type Service.Type=NodePort or Service.Type=LoadBalancer. It may be possible to customize a LoadBalancer on a cloud provider like AWS to listen on other ports.