Also known as K8s, Kubernetes is one of the most widespread open-source platforms today for managing containerized applications and services. Simply put, Kubernetes is used to manage containers or Dockers.
How to pronounce it correctly? Like this: koo-burr-NET-eez from Greek
What are some of the key Kubernetes functions?
- Deployment: Schedules and automates deployment of containers to specified hosts and keeps containers running in a desired state.
- Service discovery and load balancing: Exposes a container on the internet and employs load balancing when traffic spikes occur to maintain stability.
- Self-healing capabilities: Restarts, replaces or reschedules containers when they fail or when nodes die and kills containers that don’t respond to user-defined health checks.
- Automated rollouts and rollbacks: Rolls out application changes and monitors application health for any issues, rolling back changes if something goes wrong.
- Storage orchestration: Automatically mounts a persistent local or cloud storage system of choice as needed.
1. Overview of Kubernetes architecture
This architecture of Kubernetes provides a flexible, loosely-coupled mechanism for service discovery. Like most distributed computing platforms, a Kubernetes cluster consists of at least one master and multiple compute nodes. Kubernetes is designed on the principles of scalability, availability, security and portability. It optimizes the cost of infrastructure by efficiently distributing the workload across available resources. This section will highlight some of the key attributes of Kubernetes.
2. Why has Kubernetes grown in popularity
Keywords like better scaling, increased stability, higher rate of satisfaction from end-users, human-friendly data, efficient scheduling, portable are the key benefits of putting Kubernetes in motion.
3. Who uses Kubernetes and where
More than 2,000 companies adopted Kubernetes into their businesses in order to better monitor containers. Slack, Shopify, Robinhood, Tinder, Reddit or Pinterest are only some of the companies who have made a challenging but definitely a good business decision by addressing scale and stability problems while working with high volume of traffic. Engineering and production teams work hand in hand to support the smooth operation of their businesses.
4. What are the business benefits of using Kubernetes
For big organisations, Kubernetes may play the role of an overall orchestrator of applications. It allows space to better manage or keep track of what is running and kind of overlooking all the applications thus saving manual work. Kubernetes supports the transparency of automated deployment, scaling these containerized applications across multiple hosts.
Using Kubernetes decreases and optimizes the use of human resources in IT, and increases better performance.
5. How can businesses effectively make use of Kubernetes
5 fundamental business capabilities that Kubernetes can drive in the enterprise:
- Faster time to market
- IT cost optimization
- Improved scalability and availability
- Multi-cloud (and hybrid cloud) flexibility
- Effective migration to the cloud
6. What is Kubernetes authentication
All Kubernetes clusters have two categories of users: service accounts managed by Kubernetes, and normal users.
It is assumed that a cluster-independent service manages normal users in the following ways:
- an administrator distributing private keys
- a user store like Keystone or Google Accounts
- a file with a list of usernames and passwords
In this regard, Kubernetes does not have objects which represent normal user accounts. Normal users cannot be added to a cluster through an API call.
Even though a normal user cannot be added via an API call, any user that presents a valid certificate signed by the cluster’s certificate authority (CA) is considered authenticated. In this configuration, Kubernetes determines the username from the common name field in the ‘subject’ of the cert (e.g., “/CN=bob”). From there, the role-based access control (RBAC) sub-system would determine whether the user is authorized to perform a specific operation on a resource.
In contrast, service accounts are users managed by the Kubernetes API. They are bound to specific namespaces and created automatically by the API server or manually through API calls. Service accounts are tied to a set of credentials stored as Secrets, which are mounted into pods allowing in-cluster processes to talk to the Kubernetes API.
API requests are tied to either a normal user or a service account, or are treated as anonymous requests. This means every process inside or outside the cluster, from a human user typing kubectl on a workstation, to kubelets on nodes, to members of the control plane, must authenticate when making requests to the API server, or be treated as an anonymous user.
7. Kubernetes vs Docker
Two technologies that can complement each other rather than prioritize over each other. Actually combining them would be the way forward when speaking about powerful use of technologies.
A container is an executable unit of software that packages application code with its dependencies, enabling it to run on any IT infrastructure. A container stands alone; it is abstracted away from the host operating system (OS)—usually Linux—which makes it portable across IT environments.
Docker is an open-source containerization platform. Basically, it’s a toolkit that makes it easier, safer, and faster for developers to build, deploy, and manage containers. Although it began as an open-source project, Docker today also refers to Docker, Inc., the company that produces the commercial Docker product. Currently, it is the most popular tool for creating and running Linux containers.
Kubernetes is an open-source container orchestration platform for scheduling and automating the deployment, management, and scaling of containerized applications. Containers operate in a multiple container architecture called a “cluster.” A Kubernetes cluster includes a container designated as a “master node” that schedules workloads for the rest of the containers—or “nodes”—in the cluster.
8. Kubernetes trend
Kubernetes and containers have come a long way becoming the standard tools for building, deploying and managing applications at scale across hybrid and multi-cloud landscapes. It has definitely achieved a significant reputation during a short period of time. Global search volumes indicate that Kubernetes started trending around 2014 with steady progress until August 2020 when we see a mild decline around November 2020.
We can certainly predict the rise of “Kubernetes-native” software in the near future and security will continue to be a high-profile focus.
Top 3 Kubernetes books:
We have reviewed a list of best Kubernetes books and we recommend these:
- Kubernetes: A Step by Step Guide to Learn and Master Kubernetes By Brayden Smith
- Kubernetes in Action: 1st Edition By Marko Luksa
- Kubernetes Patterns: Reusable Elements for Designing Cloud-Native Applications By Bilgin Ibryam and Rolan Huß