Kubernetes
The Operating System for the Cloud

Demo Umfang

What is Kubernetes (K8s)?

Kubernetes is an open-source system for the automation of deployment, scaling, and management of containerized applications. It makes running applications in the cloud easier, more reliable, and more scalable.

Advantages Container

schaubild

Advantages Container managed by Kubernetes

schaubild

Core Concepts

Concept Description Importance
Cluster The entirety of your Kubernetes infrastructure. Consists of the Control Plane (Master) and Worker Nodes. The foundation of everything.
Control Plane The "brain" of the cluster. Controls, schedules, and monitors everything. (Often managed by the cloud provider.) Central control.
Worker Nodes The "workhorses". Your applications run here in containers. Are part of a Node Pool. Where your applications run.
Node Pool A group of Worker Nodes with the same configuration (machine type, operating system, etc.). Enables scaling, heterogeneity, and easier management. Defines the properties of your worker nodes and allows them to be managed as a group.
Namespaces Virtual clusters within your physical cluster. Like folders. Used for organization, isolation, and access control. Structure and isolate resources.
Pods The smallest unit. A group of one or more containers running together on a Node and sharing resources. The basic unit where your applications run.
Deployments Manage Pods. Describe the desired state of your application (e.g., number of replicas). Simplify updates, scaling, and recovery. Automates the management of your Pods.
ReplicaSets Ensure that a specific number of identical Pods are always running. Used by Deployments. Ensures the correct number of running Pods.
Services Stable IP address and DNS name for a group of Pods. Allow access even if the Pods change. Different types (ClusterIP, NodePort, LoadBalancer, ExternalName). Provide a stable access point to your Pods.
ConfigMaps Store configuration data as key-value pairs. Separate configuration from code. Configure applications without rebuilding the container.
Secrets Like ConfigMaps, but for sensitive data (passwords, API keys). Base64 encoded (Caution: not encryption!). More secure handling of sensitive data.
Volumes Directories accessible to containers in a Pod. Persistent or temporary storage. Various types (emptyDir, hostPath, PersistentVolumeClaim). Provide storage for containers that persists across container restarts (or is shared).
PersistentVolumes (PV) Storage resource in the cluster (e.g., hard drive). Provisioned by the administrator. Abstraction of the storage infrastructure.
PersistentVolumeClaims (PVC) Request for storage by a Pod/user. Kubernetes binds a suitable PV. Requests storage without needing to worry about the provisioning details.
Ingress Manages external access (HTTP/HTTPS) to Services. Acts as an "entry gate" to the cluster. Requires an Ingress Controller. Central point for routing, SSL, and more.

Interaction (simplified)

  1. Application packaged in a Docker container.
  2. Deployment created (defines desired state).
  3. ReplicaSet ensures the correct number of Pods.
  4. Pods run on Worker Nodes (which are part of a Node Pool).
  5. Service makes Pods accessible (possibly via LoadBalancer or Ingress).

Important kubectl Commands

The following commands are essential for interacting with a Kubernetes cluster:

Basic Helm Commands

Helm is a package manager for Kubernetes that simplifies the deployment and management of applications. Here are some basic commands: