This is the start of a series of blog post regarding to container orchestration with Kubernetes (a.k.a K8s). Following is the series agenda.
- Introduction to Container Orchestration with K8s
- Getting Start with K8s
- Pods – Running Containers in K8s
- Replication and Other Controllers
- Services – Exposing the network connectivity
- Managing Volumes and Container Storage
- ConfigMaps & Deployments
Introduction to Container Orchestration with K8s
Few years ago, most of the applications are monoliths, running a single application hold all the services and functions of the application. Because of this developers and ops shows slow release cycles and update the application infrequently. Today new developing era most of those monoliths applications are broke in to smaller, independently running components called microservices.
When we use microservices and divide the app in to small chunks, we face a difficulty of managing, monitoring, failure handling & automated configuration. So that’s why we can use K8s to solve most of above blockers.
If anyone wondering how the name Kubernetes comes from, “Kubernetes is Greek for pilot or helmsman (the person holding the ship’s steering wheel)”.
Origin of Kubernetes
K8s was originally developed by Google. Before they name it a Kubernetes, they develop an internal system called Borg (Later called as Omega), This system helps them to manage thousands of container workloads for both dev and system admins. In 2014 Google introduce Kubernetes, an open source system based on the experience from both Borg & Omega.
What tools we can use for administration?
For administrate K8s mainly we can use two admin tools,
- Kubectl -CLI tool
- API Deployment – Using YAML or JSON
- Kubernetes dashboard (UI)
Kubectl is a command line tool we can use for various K8s management such as creating, deleting, describe Pods, ReplicationControllers and etc. You can find more info about Kubectl from here.
API Deployment we use a YAML or JSON configuration file to describe how we need to deploy the application.
Kubernetes dashboard is UI base management tool. In here we can create Pods, ReplicationControlles, Services and etc using a YAML or JSON file. K8s dashboard is a great tool to monitor the containers and the host level performance and logs.
In next blog post we will go through how we can deploy a K8s cluster using Azure Kubernetes Service (AKS)