Intro to K8s
- Kubernetes is an open-source system for automating deployment, scaling, and management of containerized applications.
- It’s a containerization orchestration platform.
- It is easily portable across clouds and on-premises.
Kubernetes concepts
- Pods and workloads — Pods are the smallest deployable compute object in Kubernetes, and the higher-level abstractions to run workloads.
- Services — a Service exposes an application running on a set of Pods.
- Storage — Kubernetes supports both persistent and temporary storage for Pods.
- Configuration — resources that Kubernetes provides for configuring Pods.
- Security — security for cloud-native workloads enforces security for Pod and API access.
- Policies — creating policies for groups of resources helps ensure that Pods match to the Nodes so that the kubelet can find them and run the Pod.
- Schedule, Eviction — runs and proactively terminates one or more Pods on resource-starved Nodes.
- Preemption — terminates lower priority Pods so that higher priority Pods can run on Nodes.
- Administration — management details necessary to administer a Kubernetes cluster.
Kubernetes capabilities
- Automated rollouts and rollbacks
- Storage orchestration
- Horizontal scaling
- Automated bin packing
- Secret and configuration management
- IPv4/IPv6 dual-stack
- Batch execution
- Self-healing
- Service discovery and load balancing
Kubernetes architecture
A deployment of Kubernetes is called a Kubernetes cluster. A K8s cluster is a cluster of nodes that runs containerized apps. Each cluster has one master node (the K8s control plane) and one or more worker nodes. The control plane maintains the intended cluster state by making decisions about the cluster and detecting and responding to events in the cluster.