What is Kubernetes?
Kubernetes, k8s or "Kube” was developed by Google in 2014 as a result of the "Project Seven of Nine" project coming to the rescue of Gmail, Maps, Search, and other google services generating 2 billion containers per week via an internal platform called Borg. This platform is the "big sister" of Kubernetes and all the experience gained over the years in the development of Borg was the foundation for the Kubernetes technology.
Kubernetes combines over 15 years of Google's experience running production workloads at scale.
Originally, the Kubernetes platform was developed and designed by engineers at Google (private software), however in 2015, Google approached “the Linux Foundation” to co-found the “Cloud Native Computing Foundation”, Kubernetes then became Open source.
What is it for and how do Kubernetes works ?
K8s is a system for running and coordinating containerized applications on a cluster of machines. It’s used to facilitate the deployment, resilience and scalability of applications, in hybrid or multi cloud infrastructures.
Before getting to the heart of the matter, containers are an operating system virtualization method that allows an application and its dependencies to be run through a set of processes isolated from the rest of the system. This method ensures the rapid and stable deployment of applications in any IT environment. But keeping containers active is difficult, and this is the reason for the existence of Kubernetes. So if a container crashes, a new one will be automatically created and integrated into the existing network thanks to a powerful auto-discovery feature.
Kubernetes can work with any container system compliant with the Open Container Initiative standard in terms of image formats and runtime environments. For example, Kubernetes is compatible with Docker.
All major cloud providers offer managed services for K8s: AKS for Azure, GKE for Google Cloud Platform, and EKS for AWS.
K8s allows developers to stop worrying about VMs (Virtual Machines) because it directly faces its execution environment, the Containers. Thus, Kube will take care of the submerged part of the iceberg, by adapting the infrastructure, the back-end, to the developer's contributions.
Thanks to Kubernetes' monitoring agent, Kubernetes, if node A no longer responds, the pods integrated into this node will be transferred to another node to ensure stability.
Thus, a developer will only have to worry about his own creation of new functionalities and not about the stability of the infrastructure when deploying its functionalities.
Resources to learn about Kubernetes
Kubernetes has become the industry standard for deploying containers in production. Indeed, IT infrastructure professionals are now taking over this server orchestration technology. It is therefore important to keep up to date.
As you will have understood, Kubernetes, allows you to automate tasks and processes to manage containerized applications. But it's not that simple...
There are security issues when using K8s and their deployment process. Therefore, it is very important to have a good understanding and knowledge of Kubernetes and how it works. It is necessary to be familiar with all the tactics and solutions to create a secure environment for Kubernetes. That’s why you should read some of the resources below.
Lots of blogs regularly post articles on Kubernetes, it's easy to read and fast.
- The Kubernetes blog shares knowledge to teach you the basics of Kubernetes.
- At Padok, our SRE uses K8s on all of their projects to automate customer infrastructures. You can find many articles on the subject of Kubernetes on our Padok Blog.
- Kube News publishes recent information about Kubernetes to keep you up to date.
- Infoworld gives you efficient reviews, videos, news and tools about K8s.
- Google Cloud delivers video and blog series from Sandeep Dinesh on how to get the most out of your Kubernetes environment.
You can also find a lot of interesting articles on Kubernetes on Twitter. For this, we advise you to use the account "learnK8s" that helps you get started on your Kubernetes journey through comprehensive online, in person, or remote training.
There are also many tutorials to follow to inform you about Kubernetes. We recommend you the Youtube Channel “Level Up”. You will find a series of tutorials to learn Kubernetes from a DevOps guru in order to master Kubernetes to deploy, manage, and scale robust, performant, and reliable containerized.
Finally, our favorite books on Kubernetes.
By Marco Luksa
Kubernetes in Action teaches developers how to use Kubernetes to deploy self-healing scalable distributed applications. This book is our K8s bible at Padok, all our SRE have read it.
By Brayden Smith
A Step-By-Step Guide to learn and Master Kubernetes is the book for you! From Deployments to Pods, Services, Extensions, Client Libraries, and a host of other valuable aspects of the Kubernetes platform, this book is perfect for readers interested in mastering this platform.
By Bilgin Ibryam and Rolan Huß
With this focused guide, Bilgin Ibryam and Roland Huss from Red Hat provide common reusable elements, patterns, principles, and practices for designing and implementing Cloud native applications on Kubernetes.
Learning from Kubernetes would be a good decision for developers, as more and more organizations are moving towards containerization. We hope to have helped you on Kubernetes, now no more excuses to get into it. 😉