Kubernetes

What is Kubernetes?

What is Kubernetes?

Kubernetes (often abbreviated as K8s) is an open-source platform designed to automate deploying, scaling, and operating application containers.

Key Features

  • Leading container orchestration tool
  • Loosely coupled collection of components
  • Vendor-neutral (runs on all cloud providers)
  • Backed by a huge community

History

  • Originated from Google
  • v1.0 released on July 2015
  • 3rd gen container scheduler from Google
  • Donated to the Cloud Native Computing Foundation (CNCF)

What Kubernetes Can Do

Kubernetes provides a robust framework to run distributed systems resiliently.

Service Discovery & Load Balancing

K8s can expose containers using DNS or IP address and distribute network traffic.

Storage Orchestration

Automatically mount storage systems from local or cloud providers.

Automated Rollouts & Rollbacks

Gradually roll out changes while monitoring application health.

Self-Healing

Restarts containers that fail, replaces them, and kills unresponsive containers.

Secret & Configuration Management

Store and manage sensitive information like passwords and API keys securely.

Cross-Platform API

Use the same API across on-premise and every cloud provider.

What Kubernetes Can't Do

It's important to understand Kubernetes limitations to set proper expectations.

Does Not Deploy Source Code

K8s works with container images, not source code directly.

Does Not Build Your Application

You need CI/CD pipelines to build and package applications into containers.

Does Not Provide Application-Level Services

Services like message buses, databases, caches must be deployed separately.

Key Kubernetes Concepts

Understanding these concepts is crucial for working with Kubernetes.

Pods

The smallest deployable units that can be created and managed in Kubernetes.

Deployments

Manage the deployment and scaling of a set of Pods.

Services

An abstract way to expose an application running on a set of Pods.

Volumes

A way to persist data beyond the lifetime of a Pod.