Kubernetes

📚 AI Adoption & ITO Glossary
Explore 300+ AI, software engineering, cloud, data and IT outsourcing terms used by technology leaders and enterprise teams.
Browse 300+ Terms →

요약

  • Kubernetes is an open-source platform that automates the deployment, scaling, and management of containerized applications across clusters of servers, originally developed by Google.
  • It eliminates the manual operations work required to keep modern applications running reliably at scale, allowing engineering teams to focus on building features rather than managing infrastructure.
  • For businesses running cloud-based applications, Kubernetes is the de facto standard for container orchestration, supported natively by AWS, Google Cloud, and Microsoft Azure through their managed Kubernetes services.

Kubernetes has become the operating system of cloud-native software. Nearly every major cloud provider offers it as a managed service, and most large-scale web applications today run on it. Understanding what Kubernetes does and why organizations adopt it helps business leaders make informed decisions about cloud infrastructure strategy. This article explains the key concepts and business value without the technical jargon.

What is Kubernetes?

Kubernetes (often abbreviated as K8s) is an open-source container orchestration platform that automates the deployment, scaling, load balancing, and self-healing of containerized applications across a cluster of computing resources. It was originally developed by Google, open-sourced in 2014, and is now maintained by the Cloud Native Computing Foundation (CNCF).

To understand Kubernetes, it helps to understand containers first. A container is a lightweight, portable package of software that bundles an application with all the code, runtime, and dependencies it needs to run consistently in any environment. Kubernetes manages these containers at scale, handling the complex operational tasks that would otherwise require significant manual effort.

Kubernetes manages applications through several core concepts:

  • Pods: The basic unit Kubernetes manages, consisting of one or more containers that run together on the same server
  • Nodes: The individual servers (physical or virtual) in the cluster where pods run
  • Services: Configuration that manages how traffic is routed to the correct pods within the cluster
  • Deployments: Instructions that tell Kubernetes how many instances of an application to run and how to update them without downtime

Why It Matters for Businesses?

Scaling modern applications without Kubernetes requires significant manual operations work: monitoring servers, manually moving applications when servers fail, scaling up resources during demand spikes, and managing deployments without disrupting users. Kubernetes automates all of these operational concerns, reducing both the engineering effort required and the risk of service disruption that manual operations introduce.

  • Reduce infrastructure operations costs: Kubernetes automates the routine operational work that would otherwise require dedicated operations engineers, including server health monitoring, automatic restart of failed applications, and dynamic scaling based on load.
  • Improve application reliability: Kubernetes continuously monitors the health of running applications and automatically replaces failed instances, reroutes traffic away from unhealthy servers, and maintains the defined number of running replicas without requiring human intervention.
  • Accelerate deployment frequency: Kubernetes supports rolling deployments that update applications gradually with automatic rollback if errors are detected, enabling engineering teams to deploy new versions multiple times per day without risk of extended downtime.
  • Optimize cloud resource utilization: Kubernetes automatically packs workloads onto available infrastructure based on resource requirements, improving the utilization of cloud servers and reducing the over-provisioning waste that inflates cloud bills in manually managed environments.

For example, an e-commerce company running promotional campaigns that generate unpredictable traffic spikes deployed its application on Kubernetes. During a major sale event generating 8 times normal traffic, Kubernetes automatically scaled from 12 to 96 application instances within minutes, absorbed the load without service degradation, and scaled back down within an hour, avoiding both the outage risk of manual scaling and the cost of permanently running 96 instances.

How Does Kubernetes Work?

  1. Package the application as containers: Developers package each application component as a container image using Docker or a similar tool. The container includes the application code and everything it needs to run, making it portable across any Kubernetes environment.
  2. Define the desired state: Engineers write configuration files (in a format called YAML) that describe the desired state of the application: how many replicas should run, what resources each needs, how traffic should be routed, and what health checks should be performed.
  3. Kubernetes maintains the desired state: The Kubernetes control plane continuously monitors the running state of the cluster and takes automated action to reconcile any differences from the desired state: restarting crashed containers, scheduling new pods on healthy nodes, and updating deployments according to defined rollout strategies.
  4. Scale automatically: When load increases beyond defined thresholds, the Kubernetes Horizontal Pod Autoscaler creates additional application instances. When load drops, it scales them back down, maintaining performance while minimizing cost.
  5. Managed by cloud providers: Most organizations use a managed Kubernetes service such as Amazon EKS, Google GKE, or Azure AKS, where the cloud provider manages the Kubernetes control plane infrastructure, reducing the operational burden of running Kubernetes itself.

The result is a platform that gives engineering teams the ability to deploy, scale, and manage complex applications reliably and efficiently, while abstracting away the underlying infrastructure complexity that would otherwise consume significant engineering time.

When to Use Kubernetes?

Kubernetes is the right choice when:

  • Your application handles variable traffic loads and needs to scale efficiently without manual intervention
  • You run multiple application components or microservices that need coordinated deployment and lifecycle management
  • High availability is a business requirement and you cannot tolerate extended downtime during deployments or server failures

When NOT to use Kubernetes:

  • For simple applications with predictable, low traffic, Kubernetes introduces operational complexity that outweighs its benefits. Simpler platforms such as Heroku, Railway, or cloud platform-as-a-service offerings are faster and cheaper to operate at small scale.
  • When your team lacks container and Kubernetes experience, the learning curve and operational requirements can significantly slow initial development. In this case, starting with managed platform services and migrating to Kubernetes as scale justifies it is often the better path.

Other Related Terms

Containerization: The technology that packages applications and their dependencies into portable, isolated units called containers, which Kubernetes orchestrates and manages across server clusters at scale.

Cloud Native Development: A software engineering approach that builds applications specifically designed to run on cloud infrastructure, with Kubernetes as the central operational platform for deploying and managing cloud native applications.

DevOps: The practice of integrating development and operations to accelerate software delivery, where Kubernetes plays a central role by automating the infrastructure operations that would otherwise create bottlenecks in the delivery pipeline.

공유하다