Quick reminder on Containers

Before starting this new series of articles on Kubernetes, it is important to be sure that basics concepts like containers and orchestration are understood.

Containers are designed to benefit for both developers and system administrators.

Indeed, developers need to focus on writing code without worrying about the system that it will ultimately be running on. On the other hand, system administrators need have less systems to manage.

Container is a special type of process that is isolated from other processes. Containers are assigned resources that no other process can access, and they cannot access any resources not explicitly assigned to them.

Unlike a virtual machine, rather than creating a whole virtual operating system, Containers allow applications to use the same Linux kernel as the system that they’re running on and only requires applications be shipped with things not already running on the host computer. This gives a significant performance boost and reduces the size of the application.

Developers with containers will be able to package up an application (an image) with all it needs (like libraries, dependencies, code etc.) It’s really helpful because they are assured that the application will run on any other Linux machine, regardless of any customized settings.

Tools like Docker are designed to make it easier to manage containers. So you can create, deploy, and run applications with it in an easy way. Indeed, Docker provides an image-based deployment model as you can see below. This makes it easy to share an application, or set of services, with all of their dependencies across multiple environments.

You can find all my articles on Docker on the following link : Here

So what is Kubernetes ?

Kubernetes (or k8s) is an open-source container-orchestration system for automating application deployment, scaling, and management. It was originally designed by Google, and is now maintained by the Cloud Native Computing Foundation.  It works with a range of container tools, including Docker.

Why Kubernetes is useful ?

As we have seen before, you can create and manager containers with tools like Docker. But if a container goes down, and you want another container to start, you call Kubernetes !

With K8S you will have the following features handled :

  • Load balancing : Kubernetes can load balance and distribute the network traffic.
  • Storage orchestration : Kubernetes let you mount a storage system (local, public etc.)
  • Automated rollouts and rollbacks : You can automate Kubernetes to create new containers for your deployment, remove existing containers and adopt all their resources to the new container.
  • Automatic bin packing : You tell Kubernetes how much CPU and memory (RAM) each container needs.
  • Self-healing : Kubernetes restarts containers that fail, replaces containers, kills containers etc.
  • Secret and configuration management : Kubernetes lets you store and manage sensitive information, such as passwords, OAuth tokens, and SSH keys.

In the next article, we will see together Kubernetes Architecture and how to configure a lab environment.

Sources :

wikipedia.org

kubernetes.io

Leave a Comment

Your email address will not be published. Required fields are marked *