I already published blog about Docker and difference between docker and virtual machine.
Imagine you want to deploy docker on many servers and manage those servers by automation. Kubernetes is the solution for that.
What is Kubernetes-
Kubernetes is basically tool or system which manages deployment, scaling, performing operations of containers like docker automatically over the cluster.
Cluster is basically group of servers.
With Kubernetes, you are able to quickly and efficiently respond to customer demand:
best practices to work around kubernetes go through http://containertutorials.com/get_started_kubernetes/index.html
you want to understand components of kubernetes go through https://kubernetes.io/docs/admin/cluster-components/