-
Notifications
You must be signed in to change notification settings - Fork 4.9k
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
Support For Windows Containers #2015
Comments
This would be awesome for testing hybrid platforms. |
+1 - This would be an awsome feature so we could test hybrid platforms |
+1 would be extremely useful. |
+1 This would be great. |
+1 This is critical for create a good developer experience in Windows |
Issues go stale after 90d of inactivity. If this issue is safe to close now please do so with Send feedback to sig-testing, kubernetes/test-infra and/or fejta. |
+1 |
/remove-lifecycle stale |
+1. I'd rather not have to work with Windows but it is a fact that it is my corporation's jam. Minikube for Windows would make some ppl's lives better. |
+1 |
12 similar comments
+1 |
+1 |
+1 |
+1 |
+1 |
+1 |
+1 |
+1 |
+1 |
+1 |
+1 |
+1 |
This would be amazing, there doesn't currently seem to be a good solution out there for local development/testing of multi-node apps |
+1, this is highly desirable and would be much helpful. |
+1 |
@tstromberg I'd like to work on this one. Can you please explain the progress here? |
As far as I know, no one has attempted to even prototype such a beast. You'd be the first! If you do decide to embark on this ambitious effort, I suggest doing some prototyping and report on your results on this issue. Once there is a clear path forward, I'd suggest sending out a MEP: https://github.com/kubernetes/minikube/tree/master/enhancements I'd be very excited to see this happen. /cc @blueelvis |
I went through the stuff here - #116 . I feel like I have some idea on the progress that has been attained until now. Can we form up like a group on slack or something about this? It might be a little hard to pitch in detailed conversations here |
I want to up-vote this feature. I have been using Docker Desktop because it is really the only game in town if you need to run a mix of Windows and Linux containers on your developer workstation. But, Docker just upped the price for Docker Desktop to $21 per developer per month. While their product is very strong and I will pay that price to continue developing my product, if MiniKube was an alternative I bet my whole company would switch; especially since we use K8S for our production deployments anyway. I think Docker's licensing change is an opportunity for MiniKube. |
We don't currently have the bandwidth to implement this feature, but I'm certainly not opposed to supporting Windows containers. As for people who are looking for alternatives to docker desktop, you can use minikube with a vm driver (like hyperv or virtualbox) and point your local docker CLI to the docker inside of the minikube vm ( |
Getting late to this party, but I think there's definitely interest from the Windows community to see Minikube support Windows nodes. As far as I know Windows nodes require the following on K8s:
I'm not a dev, so won't even say I can pick this up, but I'll definitely try to add a separate node via the K8s interface and see how it goes. I'll report back. |
Alright, so as expected I hit a wall here. I have a multi-node MiniKube deployment with flannel with all the pre-requisites for Windows in place. However, the documentation for adding Windows nodes on Kubernetes relies on kubeadm, which is not available on MiniKube: https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/adding-windows-nodes/ I tried |
kubeadm is included in every minikube cluster (we use kubeadm to start and administer clusters). It should be in |
Thanks @sharifelgamal. This is where my lack of Linux skills show up.
Apologies for such basic ask, but how does one goes about running kubeadm from there? |
And just as I wrote this, I found the anwer:
Will continue the tests here. |
Just wanted to report the progress so far:
Windows node added successfully, thanks to the help of @jsturtevant and @marosset. I'll now try to configure flannel and kube-proxy, but these are Windows specific tasks. I'll document the whole process once I'm done and publish here. |
Another update on this: not only the node is now joined to the cluster, but flannel and kube-proxy are deployed:
Next I'll try to deploy a simple web workload to see if everything works. I started documenting the steps for all this to work and will share that as well soon. |
Another update on this and an ask for help:
I have documented the steps to get this working here: https://github.com/vrapolinario/MinikubeWindowsContainers I'm having an issue now when trying to access service deployed for windows container deployment. Both NodePort or LoadBalancer are not working correctly. The Service is deployed correctly, and get an internal IP address. I noticed that when I use either minikube service or minikube tunnel the IP address to which the service goes to is the first Linux node, not the Windows node. @sharifelgamal or others, any ideas on why this is happening? I'm not sure this is a behavior of Minikube because it is not aware of the Windows node, or if there's an issue in my configuration. |
For the sake of this being a proof of concept that actually proves its concept, I have added a section to the documentation showing how to deploy a Windows container and then using |
That's awesome work @vrapolinario thank you so much for your efforts on this! This feature is desperately needed in order to move away from docker desktop... |
@vrapolinario Have you find any solution so far? |
Folks, after a long wait we were finally able to make this work. 😊Thanks @bobsira for the help in solving the networking issue. I'll be updating the Known issues. Also, we're thinking about multiple things:
The above are things we're going to look into. We'd also love to get some support from the Minikube maintainers to get this incorporated into the official releases. @sharifelgamal thoughts? |
If you require any big changes to minikube in order to support Windows, I would suggest drafting a "MEP" proposal: https://github.com/kubernetes/minikube/tree/master/enhancements Especially the testing part (in CI) might prove something of a challenge. |
cc @kubernetes/minikube-maintainers |
Thanks @afbjorklund. I think we still have some ways to go before that, but would be nice to get some perspective from the maintainers on this as we move along. Agree that the testing part would be an issue, but something we can look into. |
When using Windows-related images in Minikube, errors occurred. Therefore, creating a Linux manager node and a Windows worker node might be a solution. The manager node can then allocate tasks to the Windows worker node, preventing errors associated with using Windows images. Is that correct? |
In any K8s environment the control plane needs to run on Linux nodes and the worker nodes can be either Linux (for Linux containers) or Windows (for Windows containers). Outside of MiniKube, Windows is supported as a node and Windows containers can be scheduled using either node selector, or taints and toleration. |
When you apply a .yaml file on a manager node to execute, does Kubernetes distribute the YAML file to worker nodes based on whether it's a Windows or Linux image? Also, I'm curious if you can use both Windows image containers and Linux image containers in the same YAML file. |
After apiVersion: v1
kind: Pod
...
spec:
nodeSelector:
kubernetes.io/os: windows
Yes, you can have multiple Pod manifests in single YAML file, each manifest can schedule pods to different node, some to Linux node and others to Windows node, as long as container OS compatibility goes. However, this is a common Kubernetes, nothing really specific to Minikube. |
Thank you. My curiosity has been satisfied. |
Feature Request
Currently, I know that Minikube is a single node cluster, and that node is Linux so it wont be able to run Windows Containers, but it would be better if Minikube is able to run Windows Containers also by being able to add a Windows node.
The text was updated successfully, but these errors were encountered: