We know that K8S is one of the Container Management tool that we use to monitor and manage containers launched on top of different systems.
But there are some benefits as well as challenges we faced in K8S.They are as follows:->
Benefits of K8S are:- i) It is easy to scale any resources like pods that you launch in K8S Cluster. ii) Workload Portability. iii) Stability vs speed arguments.
Challenges are :- i) Deployment. ii) Hardening. iii) Operations.
First we will see what are Containers?
Containers can be defined as a self-contained package that are simpler and lighter than virtual machines on which you can easily add your applications. The problems associated with it is that no one is there to monitor or manage the containers launched. If one of the containers goes down, then we need some tool which will keep track of it by performing health checks.
We will see what are the differences between Virtual Machines and Containers?
i) In Containers, virtualization occurs on top of Operating System whereas in Virtual Machines, virtualization occurs on top of server hardware.
ii) Containers abstract application from OS while Virtual Machines abstract OS from Hardware.
iii) Containers allows more guests as containers do not reserve memory assigned to them while in Virtual Machines, density of guests typically limited to fixed memory allotments.
iv) Typical boot time for Containers is in seconds but Virtual Machines consumes minutes to boot up.
Now for hosting our Containers on top of Base OS we need some CRI to run containers. One of the very famous and mostly used is Docker. But it has some limitations that are overcome by some other CRI known as Podman.
Podman is a container Engine, available on Linux, for managing our containers which provides more advanced features than Docker.
Now for overcoming the challenges we faced in K8S, we have to use one tool called as OpenShift. OpenShift is an open source container application platform based on the K8S container orchestrator for enterprise application development and deployment.
Features of OpenShift are as follows:- Pod Autoscaling, IDE Integration, High Availability, Responsive Web Console, CI/CD, Service Mesh, Open Source, Serverless, OperatorHub, Application Topology.
Platform as a service (PaaS) is a complete development and deployment environment in the cloud, with resources that enable you to deliver everything from simple cloud-based apps to sophisticated, cloud-enabled enterprise applications.
Source-to-Image (S2I) is a framework that makes it easy to write images that take application source code as an input and produce a new image that runs the assembled application as output.
Service Mesh means a collection of different services together to achieve the desired solution.