Getting Started with Kubernetes
Start minikube
The first step we need to do is to start the Kubernetes cluster. To do so, we need to use the "start" command.
minikube start
If the "~/.minikube/" folder does not exist, minikube will automatically download the ISO files.
The output will look like this:
Starting local Kubernetes v1.10.0 cluster... Starting VM... Downloading Minikube ISO 153.08 MB / 153.08 MB [============================================] 100.00% 0s Getting VM IP address... Moving files into cluster... Downloading kubelet v1.10.0 Downloading kubeadm v1.10.0 Finished Downloading kubeadm v1.10.0 Finished Downloading kubelet v1.10.0 Setting up certs... Connecting to cluster... Setting up kubeconfig... Starting cluster components... Kubectl is now configured to use the cluster. Loading cached images from config file.
We can verify to make sure all is good:
minikube status
This will show the status and the IP address of the cluster.
minikube: Running cluster: Running kubectl: Correctly Configured: pointing to minikube-vm at 192.168.99.100
Dashboard
Now let's navigate to the dashboard.
minikube dashboard
Create a test deployment
Kubernetes comes with a "hello-minikube" to play and test deployment. Kubernetes' deployments manage stateless services running on your cluster (as opposed to for example StatefulSets which do manage stateful services). Their purpose is to keep a set of identical pods running and upgrade them in a controlled way – performing a rolling update by default.
Create and run the deployment
kubectl run hello-minikube --image=k8s.gcr.io/echoserver:1.10 --port=8080
The output should show "deployment.apps "hello-minikube" created". This means now the "hello-minikube" deployment is added to the dashboard. If you refresh your dashboard, you should see it.
Expose the deployment
kubectl expose deployment hello-minikube --type=NodePort
This will now expose and launch a new deployment and create the service for it.
List the pod
kubectl get pods
This will show the newly created pod:
NAME READY STATUS RESTARTS AGE hello-minikube-7c77b68cff-tvgrt 1/1 Running 0 7m
See it in action!
This newly service can be access from your Internet browser. You can find the URL to load in the "Discovery and load balancing / Services / hello-minikube" or by running this command:
minikube service hello-minikube --url
Delete the service
If a service is not required anymore, we can remove it from the cluster.
kubectl delete services hello-minikube kubectl delete deployment hello-minikube kubectl delete pods hello-minikube-7c77b68cff-tvgrt # you can get this name using the "kubectl get pods" command