New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Kubernetes Ingress support #1901

Open
vincentditlevinz opened this Issue Mar 30, 2018 · 7 comments

Comments

Projects
None yet
7 participants
@vincentditlevinz
Copy link

vincentditlevinz commented Mar 30, 2018

Please, check https://docs.docker.com/docker-for-win/troubleshoot/.
Issues without logs and details cannot be debugged, and will be closed.

  • I have tried with the latest version of my channel (Stable or Edge)
  • I have submitted Diagnostics
  • I have included the Diagnostics ID in this Issue
  • Windows Version: Win 10 pro
  • Docker for Windows Version: 18.03.0-ce-win58 (16761)

I have installed the nginx-ingress-controller (0.10.2 from Kubernetes github) on my Kubernetes cluster and it seems to work fine. However, it exposes the node internal IP which is not directly accessible from a browser executing outside the cluster.

Expected behavior

It would be great to have a forwarding to localhost as it is the case with the LoadBalancer, but I suspect that it means a special ingress controller support inside "kubernetes for windows"

Actual behavior

The node internal IP is used as the exposed IP, this IP is unfortunately not accessible directly from the browser running on the main host.

Information

Steps to reproduce the behavior

  1. Install nginx-ingress-controller as specified here: [https://github.com/kubernetes/ingress-nginx/blob/nginx-0.10.2/deploy/README.md] (note: I had some pb with more recent versions)
  2. Create an ingress test case
  3. kubectl get ing should show the node internal IP as the ADDRESS field
@MikePugs

This comment has been minimized.

Copy link

MikePugs commented Jul 14, 2018

I got the ingress to work fine on docker-for-win by following the install instructions for mac located here

https://kubernetes.github.io/ingress-nginx/deploy/

kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/mandatory.yaml

kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/provider/cloud-generic.yaml

That will create the ingress controllers. Then you just need to create an ingress for one of your services

Example:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: vote-ingress
spec:
  rules:
  - host: vote.local.com
    http:
      paths:
      - path: /
        backend:
          serviceName: vote
          servicePort: 5000
@marchev

This comment has been minimized.

Copy link

marchev commented Aug 18, 2018

@MikePugs you rock! The described steps for Docker for Mac work for Windows as well.

@whindes

This comment has been minimized.

Copy link

whindes commented Aug 28, 2018

I also followed @MikePugs (on Windows) steps and it seems I am hitting the nginx-ingress-controller but getting the default 404. Likewise, the /healthz endpoint returns 200 The only difference in my set up is I need https (TCP 443) to work. Furthermore, in metadata, I added annotations:
kubernetes.io/ingress.class: "nginx"
nginx.org/ssl-services: "my-svc"
nginx.ingress.kubernetes.io/ssl-redirect: "false"
and finally applied namespaces "ingress-nginx" as well. Does someone have experience or can help with this development case?

@whindes

This comment has been minimized.

Copy link

whindes commented Sep 6, 2018

Update... No more issues stated in the last post. As long as you pay attention to app labels everything works splendidly.

@docker-desktop-robot

This comment has been minimized.

Copy link
Collaborator

docker-desktop-robot commented Dec 5, 2018

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale comment.
Stale issues will be closed after an additional 30d of inactivity.

Prevent issues from auto-closing with an /lifecycle frozen comment.

If this issue is safe to close now please do so.

Send feedback to Docker Community Slack channels #docker-for-mac or #docker-for-windows.
/lifecycle stale

@rodolfo-albuquerque

This comment has been minimized.

Copy link

rodolfo-albuquerque commented Dec 26, 2018

Ok, so for anyone still trying to make this work on docker-for-windows... What I had to do to make ingress "hosts" parameter work was map 127.0.0.1 to the desired url in the Windows\System32\drivers\etc\hosts file.

Sorry if it was obvious, it took sometime for me to realise. Working great now =D

@rabberbock

This comment has been minimized.

Copy link

rabberbock commented Dec 27, 2018

@rodolfo-albuquerque Were you able to use multiple host names mapped to 127.0.0.1, and then map each one of those host names to a service in the cluster? Is there any additional setup you needed to get that working? Just adding it to the hosts file is not working for me.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment