Exposing kubernetes ingress to host machine running KinD on Windows and WSL2

Viewed 62

I'm using KinD on Windows via Docker Destop running on WSL2 and trying to set up the ingress to expose port on my host machine.

I followed the guide and installed the cluster with the config as shown here: https://kind.sigs.k8s.io/docs/user/ingress/, along with Ingress NGINX controller (from helm) and a custom Ingress ressource redirecting to my service with the proper classname.

apiVersion: kind.x-k8s.io/v1alpha4
kind: Cluster
nodes:
- role: control-plane
  kubeadmConfigPatches:
  - |
    kind: InitConfiguration
    nodeRegistration:
      kubeletExtraArgs:
        node-labels: "ingress-ready=true"
  extraPortMappings:
  - containerPort: 80
    hostPort: 5180
    protocol: TCP
  - containerPort: 443
    hostPort: 51443
    protocol: TCP

If I kubectl port-forward to the ingress service, it works fine and I can access service website.

But I'm unable to access directly it via the hostPort setting set on the cluster config without port-forward (http://localhost:5180). KinD doesn't seem to attribute an external-ip to the ingress controller, it remains in <Pending> state.

Any idea why and how to diagnose further? Thanks!

pod/ingress-nginx-controller-6bf7bc7f94-2r74v                   1/1     Running     0             15h
service/ingress-nginx-controller                         LoadBalancer   10.96.1.208     <pending>     80:30674/TCP,443:30800/TCP              15h
service/ingress-nginx-controller-admission               ClusterIP      10.96.103.184   <none>        443/TCP                                 15h
my-ingress   nginx   *                 80      16h
1 Answers
Related