Source-outline mode. Generate academy from uploaded outlines: Kubernetes_Introduction_Outline_v2_2.pdf This refreshed Kubernetes Introduction Overview course walks you from first principles to practical, kubectl-driven workflows on a local cluster. You’ll build a clear mental model of how Kubernetes works, then practice creating Pods, Deployments, Services, storage, configuration, and secure access patterns. The updated version preserves the original 17-section flow while adding modern security, observability, and threat modeling practices. A refreshed, hands-on introduction to Kubernetes that preserves the instructor's original 17-section flow: theory first, then labs, from installing kubectl through Pods, Deployments, Services, storage, configuration, stateful workloads, troubleshooting, RBAC and threat modeling. What you will learn: - Install and configure kubectl and a local Kubernetes cluster using tools such as minikube or kind. - Explain the roles of Kubernetes control plane and node components and what happens when you run kubectl apply. - Create and manage core Kubernetes resources such as Pods, Deployments, Services, Namespaces, ConfigMaps, Secrets, and StatefulSets using YAML manifests. - Configure Services and label selectors to expose applications inside and outside the cluster, and verify Endpoints. - Attach persistent storage to workloads using PersistentVolumes, PersistentVolumeClaims, StorageClasses, and StatefulSets. - Monitor and troubleshoot workloads using kubectl get, describe, logs, and exec, including common failure modes like CrashLoopBackOff and Pending. - Apply basic security practices including RBAC, ServiceAccounts, Pod securityContext settings, and Pod Security Standards, and perform a simple threat modeling exercise for a Kubernetes workload. The following reference materials were provided as context. Use them as guidance only -- always prefer the latest, most current information over any potentially outdated content in these files. --- Reference: Kubernetes_Introduction_Outline_v2_2.pdf --- ## Kubernetes Introduction Overview ## This two-day course provides an overview of deploying and managing containerized applications with Kubernetes. This course will teach you how to install Kubernetes, deploy, manage, and monitor Kubernetes workloads. ## Audience ## It is for developers, operation managers, and IT professionals who would like to learn Kubernetes. ## Software Platform ## Kubernetes ## Prerequisites ## Students should have some familiarity with deploying containerized applications. ## Getting started with Kubernetes ## • Kubernetes in a nutshell: an illustrated overview • Install kubectl on Windows and Linux • Test kubectl commands • Kubernetes playgrounds (Killercoda and Kubernetes interactive tutorial) • How the course flows: theory followed by hands-on labs ## Installing a Kubernetes Cluster ## • Installation options: local, self-managed, and managed Kubernetes • Local clusters with minikube or kind • Overview of kubeadm • Managed services: Amazon EKS, Google GKE, and Azure AKS • kubeconfig, contexts, and connecting kubectl to a cluster • Lab: create a local cluster and verify it with kubectl ## Cluster Components: Masters and Nodes ## • Control plane components: API server, etcd, scheduler, and controller manager • Node components: kubelet, kube-proxy, and the container runtime • Container runtimes and the CRI: containerd and CRI-O • What happens when you run kubectl apply • Add-ons: DNS and the metrics server ## Pods ## • The atomic unit of scheduling: VMs, containers, and Pods • Kubernetes and Docker are complementary technologies • Pods and containers • Single-container and multi-container Pods • Pods are atomic, mortal, and scaled by adding Pods ## • The canonical multi-container example • The Pod shared execution environment and network namespace • Pod theory summary • Lab: write pod.yml and create the Pod with kubectl apply • Lab: introspect a running Pod with kubectl get, describe, and exec • Lab: access the service running inside the container • Lab: clean up ## Deployments ## • Deployment theory: Deployments, ReplicaSets, and Pods • Self-healing and scalability • Desired state vs. current state • Declarative vs. imperative models • Reconciliation loops • Rolling updates with zero downtime • Rollbacks and revision history • Lab: create a Deployment from deploy.yml and inspect its ReplicaSets • Lab: access the app with a NodePort Service • Lab: configure the rolling update strategy (maxSurge and maxUnavailable) • Lab: perform a rolling update, then pause and resume the rollout • Lab: check rollout status and history, then roll back • Lab: clean up ## Services ## • Service theory: stable IP, DNS name, and load balancing • Labels and loose coupling with label selectors • Services and Endpoints objects • Accessing Services from inside the cluster (ClusterIP) • Accessing Services from outside the cluster (NodePort) • Common Service types: ClusterIP, NodePort, LoadBalancer, and ExternalName • Service discovery with DNS and environment variables • Lab: expose a Deployment imperatively with kubectl expose • Lab: create a Service declaratively with svc.yml • Inspecting Services and Endpoints • Real-world example: zero-downtime version updates with label selectors ## Storage ## • The big picture: storage providers, CSI, and the persistent volume subsystem • The Container Storage Interface (CSI) • The Kubernetes persistent volume subsystem: PVs, PVCs, and StorageClasses • Access modes and reclaim policies • Lab: create a PV, a PVC, and a Pod that mounts the volume • StorageClasses and dynamic provisioning • Multiple StorageClasses and implementing them • Demo: StorageClass, PVC, and Pod; delete the Pod and verify the data persists ## ConfigMaps ## • Decoupling applications from their configuration • ConfigMap theory • How ConfigMaps work • ConfigMaps and Kubernetes-native apps ## • Creating ConfigMaps declaratively • Injecting ConfigMap data as environment variables • Injecting ConfigMap data into container startup commands • Injecting ConfigMap data with volumes, and live updates • Hands-on with ConfigMaps ## Secrets ## • Secrets vs. ConfigMaps • Why base64 is not encryption • Creating Secrets declaratively and imperatively • Consuming Secrets as environment variables and volumes • Encrypting Secrets at rest (overview) • Lab: pass credentials to a Pod ## StatefulSets ## • Stateful vs. stateless containers and services • StatefulSet theory and how it compares with Deployments • Predictable Pod names and sticky IDs • Ordered creation, scaling, and deletion • Volumes and failure handling • Network ID, headless Services, and governing Services • Hands-on with StatefulSets ## Namespaces ## • Use cases for Namespaces • Inspecting Namespaces: default and kube-system • Creating and managing Namespaces declaratively and imperatively • Configuring kubectl to use a specific Namespace • Lab: deploy an application to a Namespace and test it • Lab: clean up and reset kubeconfig ## Monitoring and Troubleshooting ## • Inspecting resources with kubectl get, describe, logs, and exec • Reading Pod status and events • Watching changes with --watch • Liveness and readiness probes • Common errors: ImagePullBackOff, CrashLoopBackOff, and Pending • Lab: diagnose and fix a broken Deployment ## API Security and RBAC ## • The API security big picture: authentication, authorization, and admission control • Authentication: users and ServiceAccounts • Authorization with role-based access control (RBAC) • Roles, ClusterRoles, RoleBindings, and ClusterRoleBindings • Checking permissions with kubectl auth can-i • Admission control • Lab: grant a user read-only access to a Namespace ## Image and Pod Security Basics ## • Image security: trusted registries, vulnerability scanning, and image signing (overview) ## • Pod securityContext: running as non-root and dropping privileges • Pod Security Standards: privileged, baseline, and restricted • Lab: apply a securityContext and observe the effect ## Threat Modeling Kubernetes ## • What is threat modeling? • Spoofing • Tampering • Repudiation • Information Disclosure • Denial of Service • Elevation of Privilege • Security talks and resources ## Kubernetes and Docker ## • Kubernetes drops Docker: the Dockershim deprecation • What changed and what did not for Docker images and developers ## Additional Resources ## • Kubernetes on AWS and Amazon EKS • Persistent disks on Google Cloud • Best practices for working with labels and label selectors • Logging and Kibana • Docker Certified Associate exam preparation • Kubernetes vs. Docker Swarm • Illustrated videos: Phippy goes to the zoo
Skill Level: Beginner