Skip to content

Kubernetes overview

Kubernetes is a portable, extensible open-source platform designed for managing containerized workloads and services^[400-devops__06-Kubernetes__k8s-ithelp__Day2__README.md]. It facilitates declarative configuration and automation, providing a framework for running distributed systems resiliently^[400-devops__06-Kubernetes__k8s-ithelp__Day2__README.md].

Etymology and History

The name "Kubernetes" originates from the Greek word for "helmsman" or "pilot"^[400-devops__06-Kubernetes__k8s-ithelp__Day2__README.md]. The project was originally designed by Google engineers and was first announced in 2014^[400-devops__06-Kubernetes__k8s-ithelp__Day2__README.md]. Version 1.0 was released on July 21, 2015^[400-devops__06-Kubernetes__k8s-ithelp__Day2__README.md].

The common abbreviation k8s is derived from the count of eight letters between the starting 'k' and the ending 's'^[400-devops__06-Kubernetes__k8s-ithelp__Day2__README.md]. Google collaborates with the Linux Foundation through the Cloud Native Computing Foundation (CNCF) to maintain the project^[400-devops__06-Kubernetes__k8s-ithelp__Day2__README.md].

Deployment Evolution

The development of Kubernetes is situated within the evolution of application deployment strategies, moving from traditional infrastructure to modern containerization^[400-devops__06-Kubernetes__k8s-ithelp__Day2__README.md].

Traditional Deployment

Early applications were built directly on physical servers^[400-devops__06-Kubernetes__k8s-ithelp__Day2__README.md]. This approach led to resource allocation issues, as it was impossible to limit the resources an application consumed^[400-devops__06-Kubernetes__k8s-ithelp__Day2__README.md]. While running separate applications on separate physical servers solved isolation issues, it resulted in high maintenance costs and underutilized resources, as unused capacity could not be allocated to other applications^[400-devops__06-Kubernetes__k8s-ithelp__Day2__README.md].

Virtualized Deployment

Virtualization technology was introduced to allow multiple Virtual Machines (VMs) to run on a single physical server^[400-devops__06-Kubernetes__k8s-ithelp__Day2__README.md]. This enabled applications to be isolated from one another within distinct VMs and provided better resource scalability while reducing hardware costs^[400-devops__06-Kubernetes__k8s-ithelp__Day2__README.md]. However, since each VM requires a complete operating system, this method still resulted in resource waste for services that did not require the full environment^[400-devops__06-Kubernetes__k8s-ithelp__Day2__README.md].

container Deployment

Containers are similar to VMs in terms of isolation but with more relaxed isolation properties; they share the host operating system rather than requiring a full OS instance^[400-devops__06-Kubernetes__k8s-ithelp__Day2__README.md]. This lightweight approach allows containers to package only the necessary application dependencies, leading to high efficiency and density^[400-devops__06-Kubernetes__k8s-ithelp__Day2__README.md].

Kubernetes builds upon this container technology to address the need for managing these containers in production environments^[400-devops__06-Kubernetes__k8s-ithelp__Day2__README.md].

Key Capabilities

Kubernetes provides a framework to support the agility of container deployment in distributed systems^[400-devops__06-Kubernetes__k8s-ithelp__Day2__README.md]. It allows for the unified management of scaling requirements, failover, and monitoring^[400-devops__06-Kubernetes__k8s-ithelp__Day2__README.md]. Key capabilities include:

  • Declarative Configuration: Automation is driven by desired state configurations^[400-devops__06-Kubernetes__k8s-ithelp__Day2__README.md].
  • Automation: Automated deployment, rolling updates, and rollbacks^[400-devops__06-Kubernetes__k8s-ithelp__Day2__README.md].
  • Infrastructure as Code (IaC): Platform operations can be handled programmatically^[400-devops__06-Kubernetes__k8s-ithelp__Day2__README.md].
  • Container
  • [[Infrastructure as Code]]
  • [[Cloud Native]]

Sources

^[400-devops__06-Kubernetes__k8s-ithelp__Day2__README.md]