These tutorials accompany the presentation [Introduction to Kubernetes][intro-slides] and make use of Minikube. A tool that allows users to quickly spin up and run a single instance of Kubernetes locally using a variety of virtualization engines. To install it and the other tutorial dependencies, see the Installation Guides section.
Lets install minikube and please refer to your OS for more details
https://minikube.sigs.k8s.io/docs/start/
Each section assumes an instance of minikube is up and running. To start minikube for the first time, use the command:
minikube start --kubernetes-version v1.15.1
To launch an alternative version of kubernetes within your minikube instance, supply an alternate version string:
minikube start --kubernetes-version <version string>
Tutorials have been validated against minikube v1.2.0 running Kubernetes v1.15.1 and kubectl 1.15.1
- cli - Covers the basics of using
kubectl
to interact with a Kubernetes cluster. - core - Tutorial of the core concepts, or building blocks of Kubernetes.
- workloads - Walkthrough of the different types of application workloads.
- storage - Explores the relationship between Persistent Volumes, Persistent Volume Claims, and Volumes themselves.
- configuration - Tutorials going over how to use the two Configuration objects ConfigMaps and Secrets.
- Examples - Examples of full blown applications to explore after the tutorials have been completed.
Ensure your laptop is capable of running a 2 core, 2GB RAM Virtual Machine.
The Installation guides are centered around using the Virtualbox Hypervisor. Others are available, but their installation and use have not been tested.
Installation on OSX is done with Homebrew, an OSX package manager. If you have not installed it previously, please see their installation guide before continuing.
WARNING: If you have previously installed virtualbox manually, do not try and upgrade it or reinstall it via brew. Upgrade it by manually by downloading it from the virtualbox site or by uninstalling it then reinstalling via brew.
Note to High Sierra (10.13)+ Users: High Sierra introduced stricter security settings over the area in which brew installs some of its binaries. If you had brew previously installed (pre High Sierra) and have not done anything with it in some time, it should be reinstalled. For details regarding this issue, see this stackoverflow thread.
Install git
, kubectl
, minikube
and virtualbox
.
brew install git kubernetes-cli
brew cask install minikube virtualbox
Once done, verify your Install.
Optional: You can improve the general user experience of working with kubectl
by installing
command-completion
Installation on Windows is done with chocolatey, a Windows Package Manager. If you have not installed it previously, please see their installation guide before continuing.
NOTE: The Windows 10 Fall Creators Update enabled HyperV by default on supported hardware. This tutorial has NOT been tested against HyperV, but should theoretically work. If you wish to use HyperV, you may skip disabling it and the installation of Virtualbox. However minikube must be configured and started in a different manner.
Disable HyperV (will require restart). HyperV unfortunately prevents Virtualbox from functioning properly and must be disabled.
dism.exe /Online /Disable-Feature:Microsoft-Hyper-V
Install git
, kubectl
, minikube
and virtualbox
.
choco install git kubernetes-cli minikube virtualbox
Once done, verify your Install.
Linux installation is different for each distro. General install information is linked below:
Once done, verify your Install.
Optional: You can improve the general user experience of working with kubectl
by installing
command-completion
With the software installed you can verify it is working correctly by executing:
minikube start --kubernetes-version v1.15.1
This will take a little bit of time the first time it is run as it will download its needed dependencies and starts the virtual machine. When it completes, you can verify it is working correctly by executing:
kubectl version
You should get output similar to the following:
Client Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.1", GitCommit:"4485c6f18cee9a5d3c3b4e523bd27972b1b53892", GitTreeState:"clean", BuildDate:"2019-07-18T14:25:20Z", GoVersion:"go1.12.7", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.1", GitCommit:"4485c6f18cee9a5d3c3b4e523bd27972b1b53892", GitTreeState:"clean", BuildDate:"2019-07-18T09:09:21Z", GoVersion:"go1.12.5", Compiler:"gc", Platform:"linux/amd64"}
After that you may stop the virtual machine with:
minikube stop
Error Message:
installer: The install failed (The Installer encountered an error that caused the installation to fail. Contact the software manufacturer for assistance.)
==> Purging files for version 5.2.18,124319 of Cask virtualbox
Error: Failure while executing; `/usr/bin/sudo -E -- env LOGNAME=bob USER=bob USERNAME=bob /usr/sbin/installer -pkg /usr/local/Caskroom/virtualbox/5.2.18,124319/VirtualBox.pkg -target /` exited with 1. Here's the output:
installer: Package name is Oracle VM VirtualBox
installer: Installing at base path /
installer: The install failed (The Installer encountered an error that caused the installation to fail. Contact the software manufacturer for assistance.)
This occurs on High Sierra if you had brew previously installed before upgrading OSX. High Sierra introduced stricter security settings over the area in which brew installs some of its binaries.
To fix the issue, simply reinstall brew following the directions on the brew site. Then proceed with installing virtualbox.
For details regarding this issue, see this stackoverflow thread.
This can be caused by a variety of issues. However the solution is the same.
First try deleting and recreating the minikube instance
minikube delete
minikube start --kubernetes-version v1.15.1
If that does not resolve the issue, delete the local minikube configs and try starting it again
minikube delete
rm -rf ~/.minikube
minikube start --kubernetes-version v1.15.1
That should hopefully resolve the kubeadm init error.