Questions Regarding Taking Containers to Production
-
We know that we can run our application inside a container, But if we want to go to live/production does containers offer me
- Fault Tolerance: What happens when the host running the container goes down?
- High Availability and Scaling: How to handle load during peak time for the applications
- Manual Interventions: Do i need to scale the applications manually ?
- New Updates: Every application will have a new releases with DevOps quite frequently, how do i update containers to the new versions without having downtime
- Monitoring capabilities
-
We need some kind of orchestration software around containers which will help us solve the above questions.
-
That is what Kuberentes does.
-
Kuberenetes (k8s) takes care of
- Scaling requirements
- failover
- deployment options for zero downtime deployment
-
K8s provides
- Service discovery and load balancing
- Storage Orchestration
- Automated rollouts and rollbacks
- Self Healing
- Secret and configuration Management
-
k8s is a platform that manages container-based appplications, their networking and storage components
-
k8s allows us to focus on application workloads rather than underlying infra
-
k8s provides a declarative approach to create deployments
-
For more info Refer Here
-
For understanding master and node components Refer Here
-
Interactions b/w k8s components
Lab Setup
- We have already installed kubernetes using kubeadm
- Now we if we want to work with kuberenetes we will be using
kubectl
and Refer Here for its cheatsheet - Lets setup autocompletion on kubectl
echo "source <(kubectl completion bash)" >> ~/.bashrc