Cluster creation using Minikube:
It’s a opensource and will handle highly available cluster of systems that are ready to work together as connected. It will allow you to deploy containerized applications on individual systems. Containerized applications are flexible and available comparing to the old deployment methods.
Kubernetes will automates scheduling and distributing applications across the cluster in the way of more efficient.
This cluster type consists of below resources:
1. Master – Cluster coordinator
2. Nodes – Where the applications run
Master:
Master will coordinate such as scheduling, managing, Scaling, Updating and roll out applications.
Kubernetes cluster will handle of production traffic with three nodes.
Nodes:
This might be physical/ VM nodes where the application are running. This has kubelet agent which will help to manage and communicate with Kubernetes master server and also nodes have Docker and rkt which will help to handling the containers.
On deployment of applications, master will schedule and start the application containers on nodes. Nodes will communicate with masters using Kubernetes API. Users also will user Kubernetes API to interact with cluster.
Kubernetes cluster can be deployed on your local or VM machines. We can use Minikube which will create a VM and implement one node cluster on your local machine. Minikube CLI will provide basic operations on your cluster like start, stop, status and delete.
To install Minikube on Linux box, we must need Virtual box/ KVM.
Minikube Installation
# curl -Lo minikube https://storage.googleapis.com/minikube/releases/v0.17.1/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/
If you are totally new to Kubernetes, you also need to download kubectl client, This is will communicate with Kubernetes API to manage containers.
Kubectl Installation:
#curl -Lo kubectl http://storage.googleapis.com/kubernetesrelease/release/v1.3.0/bin/linux/amd64/kubectl && chmod +x kubectl && sudo mv kubectl /usr/local/bin/
Note: Here I’m using Kubernetes interactive tutorials. So, required package has been already installed.
Now you were ready to use Minikube/ Kubernetes. First we must enter below command to start VM and Kubernetes cluster
#minikube start
Starting local Kubernetes cluster…
Kubectl is now configured to use the cluster.
To check the status enter below command:
#Minikube status
Running
Use the below command to check kubectl is configured or not to comminucate Minikube VM.
# kubectl get nodes
NAME STATUS AGE
host01 Ready 33s
Command to check Kubectl which command line interface version
#kubectl version
Client Version: version.Info{Major:”1″, Minor:”5″, GitVersion:”v1.5.2″, GitCommit:”08
e099554f3c31f6e6f07b448ab3ed78d0520507″, GitTreeState:”clean”, BuildDate:”2017-01-12T
04:57:25Z”, GoVersion:”go1.7.4″, Compiler:”gc”, Platform:”linux/amd64″}
Server Version: version.Info{Major:”1″, Minor:”5″, GitVersion:”v1.5.2″, GitCommit:”08
e099554f3c31f6e6f07b448ab3ed78d0520507″, GitTreeState:”clean”, BuildDate:”1970-01-01T
00:00:00Z”, GoVersion:”go1.7.1″, Compiler:”gc”, Platform:”linux/amd64″}
Use the below command to view the cluster details:
#kubectl cluster-info
Kubernetes master is running at http://host01:8080
heapster is running at http://host01:8080/api/v1/proxy/namespaces/kube-system/service
s/heapster
kubernetes-dashboard is running at http://host01:8080/api/v1/proxy/namespaces/kube-sy
stem/services/kubernetes-dashboard
monitoring-grafana is running at http://host01:8080/api/v1/proxy/namespaces/kube-syst
em/services/monitoring-grafana
monitoring-influxdb is running at http://host01:8080/api/v1/proxy/namespaces/kube-sys
tem/services/monitoring-influxdb
To further debug and diagnose cluster problems, use ‘kubectl cluster-info dump’.
To view the nodes in the cluster:
#kubectl get nodes
NAME STATUS AGE
host01 Ready 2m