<p>I have been trying to install minikube for two days now. I have run into issue after issue.  This one has me stumped.</p>

<ul>
<li>install minikube on windows 10</li>
<li>Docker has been running with hyperv for months</li>
<li>followed <a href="https://minikube.sigs.k8s.io/docs/start/windows/" rel="nofollow noreferrer">windows</a> using choco  ignoring everything with hyperv install.</li>
</ul>

<blockquote>
  <p>W0107 08:23:27.485052    3337 common.go:77] your configuration file uses a deprecated API spec: "kubeadm.k8s.io/v1beta1". Please use 'kubeadm config migrate --old-config old.yaml --new-config new.yaml', which will write the new, similar spec using a newer API version.</p>
</blockquote>

<p>From what i understand there is a new config. that i need to migrate to.  to do that i need to use kubeadm but I haven't been able to find any information on where to find these files or how to do the migration.   Here is what i have tried.</p>

<p>From an elevated command prompt i ran:</p>

<ul>
<li>minikube ssh</li>
</ul>

<p>Then i found kubeadm in the following directory.</p>

<ul>
<li>cd /var/lib/minikube/binaries/v1.17.0</li>
</ul>

<p>where by i started throwing some random commands at it in hopes of some help</p>

<pre><code>$ ./kubeadm version
kubeadm version: &amp;version.Info{Major:"1", Minor:"17", GitVersion:"v1.17.0", GitCommit:"70132b0f130acc0bed193d9ba59dd186f0e634cf", GitTreeState:"clean", BuildDate:"2019-12-07T21:17:50Z", GoVersion:"go1.13.4", Compiler:"gc", Platform:"linux/amd64"}


$ ./kubeadm config view
failed to load admin kubeconfig: open /home/docker/.kube/config: no such file or directory
To see the stack trace of this error execute with --v=5 or higher

$ ./kubeadm init --config defaults
unable to read config from "defaults" : open defaults: no such file or directory
To see the stack trace of this error execute with --v=5 or higher
</code></pre>

<p>As the error message said to run this i gave that a go.  That didnt work either</p>

<pre><code>$ ./kubeadm config migrate --old-config old.yaml --new-config new.yaml
open old.yaml: no such file or directory
To see the stack trace of this error execute with --v=5 or higher
</code></pre>

<p>After digging around in the logs i found that it was trying to load the following config file so i tried to load that as the old one in hopes it was smart enough to make its own new one.</p>

<pre><code>./kubeadm config migrate --old-config /var/tmp/minikube/kubeadm.yaml --new-config new.yaml
open /var/tmp/minikube/kubeadm.yaml: permission denied 
To see the stack trace of this error execute with --v=5 or higher
</code></pre>

<p>Ok then lets check the permissions on the file </p>

<pre><code>$ ls -la /var/tmp/minikube/kubeadm.yaml
-rw-r----- 1 root root 1156 Jan  1  0001 /var/tmp/minikube/kubeadm.yaml
</code></pre>

<p>Well that's not good let's try to update it </p>

<pre><code>$ chmod u=r /var/tmp/minikube/kubeadm.yaml
chmod: changing permissions of '/var/tmp/minikube/kubeadm.yaml': Operation not 
 permitted
</code></pre>

<p>ok </p>

<pre><code>$ sudu chmod u=r /var/tmp/minikube/kubeadm.yaml
-bash: sudu: command not found
</code></pre>

<h1>edit sudo</h1>

<pre><code> $ sudo chmod u=r /var/tmp/minikube/kubeadm.yaml 
 $ ls -la /var/tmp/minikube/kubeadm.yaml
 -r--r----- 1 root root 1156 Jan  1  0001 /var/tmp/minikube/kubeadm.yaml
</code></pre>

<h1>update 777</h1>

<pre><code>$ sudo chmod 777 /var/tmp/minikube/kubeadm.yaml
$ ls -la /var/tmp/minikube/kubeadm.yaml
-rwxrwxrwx 1 root root 1156 Jan  1  0001 /var/tmp/minikube/kubeadm.yaml
fig new.yamlconfig migrate --old-config /var/tmp/minikube/kubeadm.yaml --new-conf
W0107 13:19:23.298409    4361 validation.go:28] Cannot validate kube-proxy config - no validator is available
W0107 13:19:23.298437    4361 validation.go:28] Cannot validate kubelet config - no validator is available
failed to write the new configuration to the file "new.yaml": open new.yaml: permission denied
To see the stack trace of this error execute with --v=5 or higher
</code></pre>

<p>Still no dice. this appears to be a very limited bash shell.</p>

<h1>have a file</h1>

<p>Ok thanks to some chmod 777's i know have a file but what do i do with it?</p>

<pre><code>./kubeadm config migrate --old-config /var/tmp/minikube/kubeadm.yaml --new-config /home/docker/new.yaml
W0107 13:22:21.615314    6352 validation.go:28] Cannot validate kube-proxy config - no validator is available
W0107 13:22:21.615375    6352 validation.go:28] Cannot validate kubelet config - no validator is available
</code></pre>

<p>There seems to be little or no documentation on how to deal with this I have cross posted the issue on the forum. <a href="https://github.com/kubernetes/minikube/issues/6227" rel="nofollow noreferrer">#6227</a>   any help would be greatly appreciated.   I have tried to remove minikube and add it again with the same results.</p>

<h1>current status</h1>

<pre><code>sudo chmod 777 /var/tmp/minikube/kubeadm.yaml
ls -la /var/tmp/minikube/kubeadm.yaml
cd /var/lib/minikube/binaries/v1.17.0
./kubeadm config migrate --old-config /var/tmp/minikube/kubeadm.yaml --new-config /home/docker/new.yaml
sudo chmod 777 /var/tmp/minikube 
mv /var/tmp/minikube/kubeadm.yaml /var/tmp/minikube/kubeadmold.yaml
mv /home/docker/new.yaml /var/tmp/minikube/kubeadm.yaml

minikube start --vm-driver=hyperv --v=7 --alsologtostderr
</code></pre>

<p>No change same error message.</p>

<h1>1.16.0</h1>

<pre><code>C:\Windows\system32&gt;minikube start --vm-driver=hyperv --kubernetes-version=1.16.0
* minikube v1.6.0 on Microsoft Windows 10 Pro 10.0.18363 Build 18363
* Selecting 'hyperv' driver from user configuration (alternates: [])
* Creating hyperv VM (CPUs=2, Memory=2000MB, Disk=20000MB) ...
! Unable to verify SSH connectivity: dial tcp: address fe80::215:5dff:fe37:c505:22: too many colons in address. Will retry...
! Unable to verify SSH connectivity: dial tcp: address fe80::215:5dff:fe37:c505:22: too many colons in address. Will retry...
! Unable to verify SSH connectivity: dial tcp: address fe80::215:5dff:fe37:c505:22: too many colons in address. Will retry...
! Unable to verify SSH connectivity: dial tcp: address fe80::215:5dff:fe37:c505:22: too many colons in address. Will retry...
! Unable to verify SSH connectivity: dial tcp: address fe80::215:5dff:fe37:c505:22: too many colons in address. Will retry...
! Unable to verify SSH connectivity: dial tcp: address fe80::215:5dff:fe37:c505:22: too many colons in address. Will retry...
X minikube is unable to connect to the VM: dial tcp: address fe80::215:5dff:fe37:c505:22: too many colons in address

This is likely due to one of two reasons:

- VPN or firewall interference
- hyperv network configuration issue

Suggested workarounds:

- Disable your local VPN or firewall software
- Configure your local VPN or firewall to allow access to fe80::215:5dff:fe37:c505
- Restart or reinstall hyperv
- Use an alternative --vm-driver
</code></pre>

<p>As you are able to see <code>kubeadm</code> version it suggest that you used Kubernetes <a href="https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/" rel="nofollow noreferrer">kubeadm</a>, which is bit different from <code>Minikube</code>.</p>

<p><strong>Kubeadm</strong> is a tool to get Kubernetes working on existing machine. It will configure and start all required <code>Kubernetes</code> components. Using <code>Kubeadm</code> you are able to create cluster with multiple nodes (kubeadm join).</p>

<p><strong>Minikube</strong> is a tool which start single <code>Kubernets Cluster</code> local node.</p>

<p>There is already good explanation in this <a href="https://stackoverflow.com/a/49850582/11148139">Stackoverflow</a> question.</p>

<p>I don't think that <code>Kubeadm configuration</code> from <strong>Linux</strong> will work on <strong>Windows</strong>. As you mentioned in comment, that you want to run <code>Minikube</code> in windows to learn Kubernetes, I will provide step by step how to run <code>Minikube</code> on Windows 10.</p>

<p><strong>Installation Minikube on Windows 10</strong></p>

<p>As you already have docker I will skip that installation steps.</p>

<p><strong>1. Download <code>kubectl</code> and <code>minikube</code>.</strong></p>

<p>Newest version is provided in <a href="https://kubernetes.io/docs/tasks/tools/install-kubectl/#install-kubectl-on-windows" rel="nofollow noreferrer">official kubernetes docs</a>.</p>

<p><a href="https://storage.googleapis.com/kubernetes-release/release/v1.17.0/bin/windows/amd64/kubectl.exe" rel="nofollow noreferrer">kubectl v1.17</a> and <a href="https://github.com/kubernetes/minikube/releases" rel="nofollow noreferrer">minikube</a> from github (<code>minikube-windows-amd64.exe</code>).</p>

<p><strong>2. Add to <code>PATH</code> form folder to <code>Environment Variables</code>.</strong></p>

<p>Create folder where you will paste <code>kubectl.exe</code> and renamed <code>minikube.exe</code> file. 
Add This folder to <code>PATH</code>. (If someone would need <a href="https://www.architectryan.com/2018/08/31/how-to-change-environment-variables-on-windows-10/" rel="nofollow noreferrer">here is tutorial</a>).</p>

<p><strong>3. Create external <code>Virtual Switch Manager</code> in <code>Hyper-V</code>.</strong></p>

<p>Go to <code>Hyper-V</code>. From the right menu choose <code>Virtual Switch Manager</code>. Choose <code>External</code> and name it <code>Primary Virtual Switch</code>. Then apply.</p>

<p><strong>4. Verify <code>minikube</code> and <code>kubeadm</code> versions.</strong></p>

<pre><code>PS C:\WINDOWS\system32&gt; kubectl version
Client Version: version.Info{Major:"1", Minor:"17", GitVersion:"v1.17.0", GitCommit:"70132b0f130acc0bed193d9ba59dd186f0e634cf", GitTreeState:"clean", BuildDate:"2019-12-07T21:20:10Z", GoVersion:"go1.13.4", Compiler:"gc", Platform:"windows/amd64"}​
Server Version: version.Info{Major:"1", Minor:"17", GitVersion:"v1.17.0", GitCommit:"70132b0f130acc0bed193d9ba59dd186f0e634cf", GitTreeState:"clean", BuildDate:"2019-12-07T21:12:17Z", GoVersion:"go1.13.4", Compiler:"gc", Platform:"linux/amd64"}​
PS C:\WINDOWS\system32&gt; minikube version​
minikube version: v1.6.2​
commit: 54f28ac5d3a815d1196cd5d57d707439ee4bb392
</code></pre>

<p><strong>5. Create <code>Minikube Cluster</code>.</strong></p>

<p>Run <code>PowerShell</code> as Administrator.</p>

<p><code>minikube start --vm-driver hyperv --hyperv-virtual-switch "Primary Virtual Switch"</code></p>

<pre><code>PS C:\WINDOWS\system32&gt; minikube start --vm-driver hyperv --hyperv-virtual-switch "Primary Virtual Switch"
* minikube v1.6.2 on Microsoft Windows 10 Enterprise 10.0.17134 Build 17134​
* Selecting 'hyperv' driver from user configuration (alternates: [])​
* Creating hyperv VM (CPUs=2, Memory=2000MB, Disk=20000MB) ...​
* Preparing Kubernetes v1.17.0 on Docker '19.03.5' ...​
* Pulling images ...​
* Launching Kubernetes ...​
* Waiting for cluster to come online ...​
* Done! kubectl is now configured to use "minikube"​
</code></pre>

<p>Now you can use <code>kubectl</code> commands and already have default resources required for running <code>Minikube</code>.</p>

<pre><code>PS C:\WINDOWS\system32&gt; kubectl get pods --all-namespaces​
NAMESPACE     NAME                               READY   STATUS    RESTARTS   AGE​
kube-system   coredns-6955765f44-c4cbj           1/1     Running   0          31m​
kube-system   coredns-6955765f44-rqfth           1/1     Running   0          31m​
kube-system   etcd-minikube                      1/1     Running   0          31m​
kube-system   kube-addon-manager-minikube        1/1     Running   0          31m​
kube-system   kube-apiserver-minikube            1/1     Running   0          31m​
kube-system   kube-controller-manager-minikube   1/1     Running   0          31m​
kube-system   kube-proxy-j6q29                   1/1     Running   0          31m​
kube-system   kube-scheduler-minikube            1/1     Running   0          31m​
kube-system   storage-provisioner                1/1     Running   0          31m
</code></pre>

<p>In addition, you can check <a href="https://medium.com/@JockDaRock/minikube-on-windows-10-with-hyper-v-6ef0f4dc158c" rel="nofollow noreferrer">this</a> article about running <code>Minikube</code> on windows.</p>

<p>Also you can consider <a href="https://docs.docker.com/docker-for-windows/" rel="nofollow noreferrer">Docker for Windows</a> which will do many things automatically, however it will install older version of <code>kubernetes</code> (1.14 at the moment).</p>
