Introduction
Introduction to the Course
CKA - Exam Blueprint
Document - Link to Code Repository
Domain 1: Core Concepts
Overview of Container Orchestration
Introduction to Kubernetes
Installation Options for Kubernetes
Using Managed Kubernetes Service from CSP
Installing & Configuring kubectl for Linux
Document - Installation of Kubectl
Configuring Kubernetes in Minikube in Windows
Document - Minikube Installation Commands
Configuring Kubernetes in Minikube in Linux
Document - Minikube Installation Commands
Understanding PODS
Understanding Kubernetes Objects
Overview of Kubernetes Cluster Architecture
K8S Components - ETCD
K8S Components - kube-apiserver
Introduction to API
Kubernetes API Primitives
Creating First POD Configuration in YAML
Document - API Resources for writing YAML files
Working with Multi-Container Pods
Setting Environment Variables for Windows
K8S Components - kube-scheduler
Document - Note on CMD vs Entrypoint
Revising Dockerfile - CMD vs ENTRYPOINT
Understanding Commands and Arguments in Kubernetes
CLI Documentation of K8s Resources
Revising DockerFile - EXPOSE Instruction
Exposing Ports for PODS
Generating Pod Manifests via CLI
Practice Test - Domain 1
Domain 2: Application Lifecycle Management
Introduction to Labels and Selectors
Implementing Labels and Selectors
Overview of ReplicaSets
Creating our first ReplicaSet
Introduction to Deployments
Creating our first deployment
Rolling Back Deployments
Important Pointers - Deployments
Understanding Liveness Probe
Understanding Readiness Probe
Overview of Docker Restart Policy
Overview of Batch Jobs
Creating first Job in Kubernetes
CronJobs
Generating Deployment Manifests via CLI
Document - Lecture Commands
Practice Test - Domain 2
Domain 3: Networking
Overview of Service
Creating our first Service and Endpoint
Service Type: ClusterIP
Using Selectors for Service Endpoints
Port vs TargePort
Service Type: NodePort
Service Type: Load Balancer
Generating Service Manifests via CLI
Document - Lecture Commands
Overview of Ingress
Understanding Ingress Resource and Ingress Controllers
Overview of Helm
Configuring Helm and Tiller
Deploying our first Helm Chart
Document - Deploying Chart Commands
Named Based Virtual Hosting (Ingress)
Deploying Nginx Ingress Controller
Document - Ingress Controller Deployment
Configuring Default BackEnd for Ingress
Kubernetes Namespace
Service Accounts
Understanding kube-proxy
Practice Test - Domain 3
Domain 4: Scheduling
Understanding DaemonSets
Overview of NodeSelector
Understanding Node Affinity
Pod Affinity and Pod Anti-Affinity
Resource Limits
Scheduling Pods without a Scheduler
Document - Static Pod
Taints and Tolerations
Components of Taints and Tolerations
Practice Test - Domain 4
Domain 5: Security
Understanding Authentication
Document - Authenticate with Bearer Token
Introduction to Asymmetric Key Encryption
Understanding SSL/TLS
Creating TLS Certificate for Authentication
Document - Certificate Based Authentication
Understanding Authorization
API Groups, Resources and Verbs
Access Control based on Namespace
ClusterRole and ClusterRoleBinding
Kubernetes Secrets
Document - Commands for Generating Secrets
Mounting Secrets Inside Pods
Network Security Policies
Linux Capabilities with Docker Containers
Overview of Privileged Containers
Running Privileged Containers in Kubernetes
Understanding Kubeconfig
Creating Kubeconfig from Scratch
Document - Kubeconfig from Scratch
Practice Test - Domain 5
Domain 6 - Storage
Overview of Docker Volumes
Creating Volumes in Kubernetes
PersistentVolume and PersistentVolumeClaim
Static vs Dynamic Provisioning of PV
Document - Dynamic Provisioning
ConfigMaps
Security Contexts
Practice Test - Domain 6
Domain 7 - Installation, Configuration & Validation
Configuring Cluster with kubeadm
Document - Configuration Commands
Kubernetes Cluster from Scratch
Provisioning Release Binaries
Document - Downloading Binaries
Configuring the Certificate Authority
Installing and Configuring ETCD
Configuring kube-api server
Configuring Controller Manager
Configuring Scheduler
Validating Cluster Component Status
Worker Node Configurations
Configuring Networking
RBAC for API to Kubelet Communication
Configuring DNS in Cluster
Kubelet Preferred Instance Type
Document - kube-api flag
Smoke Testing
Encrypting Secrets in ETCD at Rest
TLS Bootstrapping of Worker Nodes
Backing and Restoring ETCD
Domain 8 - Logging / Monitoring
Kubernetes Events
Monitor Cluster Components
Deploying Metric Server
Document - Installing Metric Server
Horizontal Pod Auto-Scaler
Document - Configuring HPA
Understanding Docker Logging Drivers
Monitoring Application Logs
Monitoring Cluster Component Logs
Domain 9 - Troubleshooting
Troubleshooting Application Failure
Solution - Troubleshooting Application Failure
Troubleshooting Control Plane Failure
Domain 10 - Cluster Maintenance
Version Skew Support Policy
Facilitating OS Upgrades
Draining Worker Nodes
Document - Drain and Uncordon Node
Taint Based Evictions
Exam Preparation Section
Registering for the Exams
Candidate Handbook - Important Pointers
Important Tips for Exams
Important Pointers for Exams - Domain 1
Important Pointers for Exams - Domain 2
Important Pointers for Exams - Domain 3
Important Pointers for Exams - Domain 4
Important Pointers for Exams - Domain 5
Important Pointers for Exams - Domain 6
Important Pointers for Exams - Domain 7
Important Pointers for Exams - Domain 8
Important Pointers for Exams - Domain 9
Important Pointers for Exams - Domain 10
Exam Preparation Practice Test
Solution - Exam Preparation Test