Industry Use Cases — Kubernetes/Openshift

Introduction :
Bare-metal :
A bare-metal server is a computer server that hosts one tenant, or consumer, only. The term is used for distinguishing between servers that can host multiple tenants and which utilize virtualisation and cloud hosting. Such servers are used by a single consumer and are not shared between consumers. Each server may run any amount of work for a user, or have multiple simultaneous users, but they are dedicated entirely to the entity who is renting them. Unlike servers in a data center, they are not being shared between multiple customers.
Bare-metal servers are physical servers. Each server offered for rental is a distinct physical piece of hardware that is a functional server on its own. They are not virtual servers running in multiple pieces of shared hardware.
Virtual Machines :
A virtual machine (VM) is a virtual environment that functions as a virtual computer system with its own CPU, memory, network interface, and storage, created on a physical hardware system (located off- or on-premises). Software called a hypervisor separates the machine’s resources from the hardware and provisions them appropriately so they can be used by the VM.
Containerization :
Operating system (OS) virtualization has grown in popularity over the last decade to enable software to run predictably and well when moved from one server environment to another. But containers provide a way to run these isolated systems on a single server or host OS.
Containers sit on top of a physical server and its host OS — for example, Linux or Windows. Each container shares the host OS kernel and, usually, the binaries and libraries, too. Shared components are read-only. Containers are thus exceptionally “light” — they are only megabytes in size and take just seconds to start, versus gigabytes and minutes for a VM.
Containers also reduce management overhead. Because they share a common operating system, only a single operating system needs care and feeding for bug fixes, patches, and so on. This concept is similar to what we experience with hypervisor hosts: fewer management points but slightly higher fault domain. In short, containers are lighter weight and more portable than VMs.
Docker :

Docker is an open source project launched in 2013. It helped popularize the technology, and has helped drive the trend towards containerization and microservices in software development that has come to be known as cloud-native development. Docker is a software platform for building applications based on containers small and lightweight execution environments that make shared use of the operating system kernel but otherwise run in isolation from one another. While containers as a concept have been around for some time.
How Podman comes into the play :
Podman :

Podman is a daemonless, open source, Linux native tool designed to make it easy to find, run, build, share and deploy applications using Open Containers Initiative (OCI) Containers and Container Images. Podman provides a command line interface (CLI) familiar to anyone who has used the Docker Container Engine. Most users can simply alias Docker to Podman (alias docker=podman) without any problems. Similar to other common Container Engines (Docker, CRI-O, containerd), Podman relies on an OCI compliant Container Runtime (runc, crun, runv, etc) to interface with the operating system and create the running containers. This makes the running containers created by Podman nearly indistinguishable from those created by any other common container engine.
The greatest difference between Docker and Podman is their architecture. Docker runs on a client-server architecture, while Podman runs on a daemonless architecture. But what does that mean? When working with Docker, you have to use the Docker CLI, which communicates with a background daemon (the Docker daemon). The main logic resides in the daemon, which builds images and executes containers. This daemon runs with root privileges. The Podman architecture by contrast allows you to run the containers under the user that is starting the container (fork/exec), and this user does not need any root privileges. Because Podman has a daemonless architecture, each user running Podman can only see and modify their own containers. There is no common daemon that the CLI tool communicates with.
Kubernetes :

After evolving into containerization, but who really look after the containers and moniter them. Container is a process which has a isolated space in the kernel and own os launched within seconds. It’s totally an environment. But these containers do not have capability to manage themselves. We have someone to monitor and use in a way to satisfy our use case. There are problems like deployment, desired state, scalability etc in using the containers alone. Then there comes the Kubernetes. This is where the Kubernetes comes into play.
Kubernetes is an orchestration tool for containerized applications. Starting with a collection of Docker containers, Kubernetes can control resource allocation and traffic management for cloud applications and microservices.
As such, it simplifies many aspects of running a service-oriented application infrastructure. Along with modern continuous integration and continuous deployment (CI/CD) tools, Kubernetes provides the basis for scaling these apps without huge engineering effort.
Open shift :

Open shift is an open-source platform for container application development, deployment, and management. OpenShift enables developers to build and deploy Docker-formatted containers on an integrated development environment (IDE), and then manage them with the Kubernetes platform.
For all that Kubernetes can do, users still need to integrate other components like networking, ingress and load balancing, storage, monitoring, logging, and more. Red Hat OpenShift offers these components with Kubernetes at their core because — by itself — Kubernetes is not enough.
Red Hat OpenShift focuses on an enterprise user experience. It’s designed to provide everything a full-scale company may need to orchestrate containers — including enhanced security options and full-time professional support — and to integrate directly into enterprises’ custom IT stacks, which may include:
- Red Hat products like Ansible.
- Open source projects like Jenkins.
- Major public cloud providers like Amazon Web Services (AWS), Google Cloud, IBM Cloud, and Microsoft Azure.
Conclusion :
The evolution of technology and architecture has been so far and is designed by overcoming the challenges faced. From bare-metal to Open shift, every component has been working together and integrating each other has come up to this and the things has been speed up.
Thank you…
Keep Learning…
Keep Sharing…