Official kubernetes (k8s) website says,
Kubernetes is an open-source system for automating deployment, scaling, and management of containerized applications. It groups containers that make up an application into logical units for easy management and discovery. Kubernetes builds upon 15 years of experience of running production workloads at Google, combined with best-of-breed ideas and practices from the community.
As the definition says, Kubernetes or k8s is an open-source orchestration and cluster management for container-based applications.
Why we need Kubernetes?
The first question when it comes to Kubernetes or a container orchestrator is that, why we need it. Let’s understand it from two examples.
Example 1: Container Deployments
Let’s say you have a couple of java application.
You can package it into a container and run it on a server containing docker. For this scenario, there is no complexity.
You just package your application into a Docker image using Dockerfile and expose a port on a host for the external world to access it.
The only downside is that it is a single point of failure as it is a single server. You need an efficient mechanism to handle a single point of failure.
This is why you need a container clustering & orchestration tool like Kubernetes to scale applications on-demand and to withstand single node failures.
Example 2: Microservices Deployment/Orchestration
Now, let’s say, you have a big application that is composed of microservices (APIs, UI, user management, credit card transaction system, etc).
All these microservice components have to talk to each other using REST or other protocols.
As the application has many components or microservices, we cannot pack all the services into one server or a container.
The application has to be decoupled and each microservice should be deployed and scaled on its own. This makes the application development and deployment easier and faster.
In this scenario, the complexity lies in networking, shared file system, load balancing, and service discovery.
Here is where kubernetes comes in to picture. It helps in orchestrating the complex processes in a manageable way.
Using kubernetes you just have to worry about your application development and deployments. All heavy lifting like networking, load balancing, resource scheduling, scalability, and high availability will be taken care of by kubernetes.
Kubernetes Tutorials For Beginners
We have listed down a list of tutorials that you can use to get started with kubernetes. This is a growing list.
Architecture & Setup:
- The Illustrated Children’s Guide to Kubernetes
- Kubernetes Architecture Explained
- Setup Kubernetes Cluster Using Kubeadm
- Kubernetes Deployment Tutorial For Beginners
- How To Create Kubernetes Service Account
- Kubernetes Ingress Tutorial For Beginners
- How To Set Up Ingress On Kubernetes Using Nginx Controller
- How To Create Kubernetes Jobs/Cron Jobs
- How To Setup Prometheus Monitoring On Kubernetes Cluster
- Setup Jenkins On Kubernetes Cluster
- Setting Up Alert Manager On Kubernetes
- Setup Latest Nexus OSS On Kubernetes
Kubernetes Certitification (CKA/CKAD):
- Kubernetes Certification Tips From A Kubernetes Certified Administrator
- Kubernetes Certification Coupon: 16% Off + $100 Off On Kubernetes Course Bundle
Related Online Courses:
- Kubernetes Tutorials From LinkedIn Learning [Check Free LinkedIn Learning Account]
- Getting Started with Kubernetes [Check Pluralsight Free Access]
Subscribe to our mailing list to keep updated on our latest Kubernetes tutorials.