Installing an Old Kubernetes version on Windows
Tags: windows, wsl, docker, kubernetes
Published: 2020-10-27 20:55:40

---
title: Installing an Old Kubernetes version on Windows
published: true
description: This is a how to tutorial for installing an old kubernetes version on windows
tags: Windows, WSL, Docker, Kubernetes
cover_image: https://dev-to-uploads.s3.amazonaws.com/i/2o33rjz6jnhgttdbomqk.jpg
---


Yes, sometimes we need to downgrade. So that was my problem I need to maintain an application using Windows and Kubernetes 1.17.

# First attempt

I try to install the Kubernetes package inside Docker. But... For now, I only have the version 1.19! I know that I should reproduce the same environment from the deployment.

# Second attempt

What if I deploy Rancher v2?

We have one problem. The latest version of Rancher doesn't create a Kubernetes 1.17 cluster, only a 1.19!

So I have to find a version of Rancher that creates the cluster on the required version. I found it on the version `2.3.8`.

So to get this Rancher open a CMD running as Administrator and execute:

```
docker run --name rancher --privileged -d --restart=unless-stopped -p 10080:80 -p 10443:443 rancher/rancher:v2.3.8
```

Why I'm not using port `80` and `443`? Because ETCD will use these ports, let them free!

## Troubleshooting

If you tried running more than one Kubernetes Cluster on Windows with WSL, you will have a problem with client certification:

```
2020-10-27 20:14:53.231000 I | etcdserver: published {Name:etcd-docker-desktop ClientURLs:[https://192.168.65.3:2379 https://192.168.65.3:4001]} to cluster 3c0da32f1ef888fb
2020-10-27 20:14:53.232544 I | embed: serving client requests on [::]:2379
2020-10-27 20:14:53.241806 I | embed: rejected connection from "192.168.65.3:43330" (error "tls: failed to verify client's certificate: x509: certificate signed by unknown authority (possibly because of \"crypto/rsa: verification error\" while trying to verify candidate authority certificate \"kube-ca\")", ServerName "")
2020-10-27 20:14:58.251358 I | embed: rejected connection from "192.168.65.3:43744" (error "tls: failed to verify client's certificate: x509: certificate signed by unknown authority (possibly because of \"crypto/rsa: verification error\" while trying to verify candidate authority certificate \"kube-ca\")", ServerName "")
2020-10-27 20:15:03.258650 I | embed: rejected connection from "192.168.65.3:43908" (error "tls: failed to verify client's certificate: x509: certificate signed by unknown authority (possibly because of \"crypto/rsa: verification error\" while trying to verify candidate authority certificate \"kube-ca\")", ServerName "")
2020-10-27 20:16:22.390547 I | embed: rejected connection from "192.168.65.3:46707" (error "EOF", ServerName "")
2020-10-27 20:16:36.732519 I | embed: rejected connection from "192.168.65.3:47178" (error "tls: failed to verify client's certificate: x509: certificate signed by unknown authority (possibly because of \"crypto/rsa: verification error\" while trying to verify candidate authority certificate \"kube-ca\")", ServerName "")
```

This happens because Rancher ETCD creates a folder inside the host machine and reuse some data. You can find that information on the log:

```
2020-10-27 20:14:43.703157 N | etcdmain: the server is already initialized as member before, starting as etcd member...
```

On the line above, ETCD is informing us that it will use a certificate for an old cluster. This will produce an error.

To resolve this problem, you should remove all data from `/var/lib/etcd`. I could not find that folder on Windows File System, so I open the **Docker Troubleshoot** and select **Clean / Purge data**.

![Docker Troubleshoot](https://dev-to-uploads.s3.amazonaws.com/i/kzy1aj9d5dy7dmaa2o6w.png)

# Conclusion

You can run any version of Kubernetes using Windows, WSL and Rancher. You have only to find the correct versions.

---
![Picture by Julius Silver from Pexels](https://dev-to-uploads.s3.amazonaws.com/i/2o33rjz6jnhgttdbomqk.jpg)

Picture by **Julius Silver** from **Pexels**