3. Windows 10 Setup
Docker - Setup Kubernetes on your Windows 10 laptop
Install Docker CE for Windows
https://hub.docker.com/editions/community/docker-ce-desktop-windows
Install Kubernetes through Docker
Docker -> Settings -> Kubernetes -> Enable Kunenetes -> Apply
Kubernestes is now running, try kubectl commands
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
docker-for-desktop Ready master 6m v1.10.11
If you tried running minikube earlier, try listing the contexts and choose the context to use
$ kubectl config get-contexts
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
* docker-for-desktop docker-for-desktop-cluster docker-for-desktop
minikube minikube minikube
$ kubectl config use-context minikube
$ kubectl config use-context docker-for-desktop
Switched to context "docker-for-desktop".
Let's try to run a pod now
$ kubectl run hello-kubernetes --image=k8s.gcr.io/echoserver:1.4 --port 8080
deployment.apps "hello-kubernetes" created
$ kubectl expose deployment hello-kubernetes --type=NodePort
service "hello-kubernetes" exposed
$ kubectl get service hello-kubernetes
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
hello-kubernetes NodePort 10.105.113.187 <none> 8080:32411/TCP 22s
Open in browser
http://localhost:32411/
CLIENT VALUES:
client_address=192.168.65.3
command=GET
real path=/
query=nil
request_version=1.1
request_uri=http://localhost:8080/
SERVER VALUES:
server_version=nginx: 1.10.0 - lua: 10001
HEADERS RECEIVED:
accept=text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
accept-encoding=gzip, deflate, br
accept-language=en-US,en;q=0.9
cache-control=max-age=0
connection=keep-alive
cookie=splunkweb_csrf_token_8000=10727658500683419439
host=localhost:32411
upgrade-insecure-requests=1
user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36
BODY:
-no body in request-
Minikube - Setup Kubernetes on your Windows 10 laptop
Minikube
Minikube is a tool that makes it easy to run Kubernetes locally. Minikube runs a single-node Kubernetes cluster inside a VM on your laptop for users looking to try out Kubernetes.
Microsoft Hyper-V
A component of Windows Server Microsoft Hyper-V, codenamed Viridian and formerly known as Windows Server Virtualization, is a native hypervisor. It can create virtual machines on x86–64 systems running Windows.
Install Hyper-V on Windows 10
Open a PowerShell console as Administrator.
Run Command:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
Install Chocolatey Package manager on Windows 10
Open a command line window as administrator.
Run Command:
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
Test choco by installing git:
choco install git
Install Minikube
Open Windows Power Shell with Admin Privileges
Install the package minikube using chocolatey package manager
##Minikube has a kubernetes-cli dependency which will get auto-installed along with Minikube ##
choco install minikube
Validate the output
PS C:\windows\system32> choco install minikube
Chocolatey v0.10.11
Installing the following packages:
minikube
By installing you accept licenses for the packages.
Progress: Downloading kubernetes-cli 1.13.3... 100%
Progress: Downloading Minikube 0.34.1... 100%
kubernetes-cli v1.13.3 [Approved]
kubernetes-cli package files install completed. Performing other installation steps.
The package kubernetes-cli wants to run 'chocolateyInstall.ps1'.
Note: If you don't run this script, the installation will fail.
Note: To confirm automatically next time, use '-y' or consider:
choco feature enable -n allowGlobalConfirmation
Do you want to run the script?([Y]es/[N]o/[P]rint): Y
Extracting 64-bit C:\ProgramData\chocolatey\lib\kubernetes-cli\tools\kubernetes-client-windows-amd64.tar.gz to C:\ProgramData\chocolatey\lib\kubernetes-cli\tools...
C:\ProgramData\chocolatey\lib\kubernetes-cli\tools
Extracting 64-bit C:\ProgramData\chocolatey\lib\kubernetes-cli\tools\kubernetes-client-windows-amd64.tar to C:\ProgramData\chocolatey\lib\kubernetes-cli\tools...
C:\ProgramData\chocolatey\lib\kubernetes-cli\tools
ShimGen has successfully created a shim for kubectl.exe
The install of kubernetes-cli was successful.
Software installed to 'C:\ProgramData\chocolatey\lib\kubernetes-cli\tools'
Minikube v0.34.1 [Approved]
minikube package files install completed. Performing other installation steps.
ShimGen has successfully created a shim for minikube.exe
The install of minikube was successful.
Software install location not explicitly set, could be in package or
default install location if installer.
Chocolatey installed 2/2 packages.
See the log for details (C:\ProgramData\chocolatey\logs\chocolatey.log).
Install the Kubernetes CLI
Kubernetes Command Line Interface that will help you access any kubernetes cluster ( Local or otherwise )
choco install kubernetes-cli
Change settings of Hyper-V
This is to work around a bug of minikube.
Open Hyper-V and go to Actions -> Virtual Switch Manager
Click on New virtual network switch on the right hand side, select External for the network type, and then click the Create Virtual Switch button.
Name the network Minikube v switch and then set it as an external network
Run the following command in command prompt with admin privileges to start the minikube VM and configure it to be used with kubectl
C:\windows\system32>minikube start --vm-driver hyperv --hyperv-virtual-switch "minikube v switch"
o minikube v0.34.1 on windows (amd64)
> Creating hyperv VM (CPUs=2, Memory=2048MB, Disk=20000MB) ...
@ Downloading Minikube ISO ...
184.30 MB / 184.30 MB [============================================] 100.00% 0s
Minikube had error so delete existing Minikube VM
The minikube delete command can be used to delete your cluster. This command shuts down and deletes the Minikube Virtual Machine. No data or state is preserved.
C:\windows\system32>minikube delete
- Powering off "minikube" via SSH ...
x Deleting "minikube" from hyperv ...
- The "minikube" cluster has been deleted.
Set the correct NIC
First create a vSwitch in Hyper-V
* type: external
* name: Minikube (or anything you like)
* make sure to associate the vSwitch with the correct NIC
* reboot after creating the vSwitch just in case (routing tables, ...)
* go take a look at the network devices on your Windows host to make sure that you have a Virtual Ethernet Adapter configured and actually connected to your network
* Control Panel\Network and Internet\Network Connections. In my case i have: "vEthernet (Minikube)"
Once done make sure to start clean, remove ~/.minikube and remove any VM you tried to create before.
minikube stop
minikube delete
rm -rf ~/.minikube
Once you're ready, make it happen:
minikube start --vm-driver "hyperv" --hyperv-virtual-switch "Minikube" --disk-size 10g --memory 4096 --v 9999 --alsologtostderr
Start a Cluster
C:\windows\system32>minikube start --vm-driver hyperv --hyperv-virtual-switch "minikube-vswitch"
o minikube v0.34.1 on windows (amd64)
> Creating hyperv VM (CPUs=2, Memory=2048MB, Disk=20000MB) ...
- "minikube" IP address is 192.168.1.6
- Configuring Docker as the container runtime ...
- Preparing Kubernetes environment ...
@ Downloading kubelet v1.13.3
@ Downloading kubeadm v1.13.3
Open a new command window, this time as a normal user and run the following command
kubectl get pods -n kube-system
minikube version
minikube dashboard
minikube status