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
- deployment options for zero downtime deployment
- 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
- We have already installed kubernetes using kubeadm
- Now we if we want to work with kuberenetes we will be using
kubectland Refer Here for its cheatsheet
- Lets setup autocompletion on kubectl
echo "source <(kubectl completion bash)" >> ~/.bashrc