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
- Configuring Kubernetes in Minikube in Windows
- Configuring Kubernetes in Minikube in Linux
- What is PODS
- Kubernetes Objects
- Overview of Kubernetes Cluster Architecture
- K8S Components – ETCD, kube-apiserver, kube-scheduler
- Introduction to API
- Kubernetes API Primitives
- Creating First POD Configuration in YAML
- Working with Multi-Container Pods
- Understanding Commands and Arguments in Kubernetes
- CLI Documentation of K8s Resources
- Exposing Ports for PODS
- Generating Pod Manifests via CLI
3. Services and Networking
- What is Service
- Creating our first Service and Endpoint
- Service Type: ClusterIP, NodePort, Load Balancer
- Using Selectors for Service Endpoints
- Port vs TargePort
- Generating Service Manifests via CLI
- Overview of Ingress
- Understanding Ingress Resource and Ingress Controllers
- Named Based Virtual Hosting (Ingress)
- Deploying Nginx Ingress Controller
- Configuring Default BackEnd for Ingress
- Kubernetes Namespace
- Service Accounts
- Named Port
5. Storage
- What is of Docker Volumes
- Creating Volumes in Kubernetes
- PersistentVolume and PersistentVolumeClaim
- Static vs Dynamic Provisioning of PV
- ConfigMaps
- Security Contexts
- Storage Volume Expansion
7. Logging / Monitoring
- Kubernetes Events
- Monitor Cluster Components
- Deploying Metric Server
- Understanding Docker Logging Drivers
- Monitoring Application Logs
- Monitoring Cluster Component Logs
8. Troubleshooting
- Troubleshooting Application Failure
- Solution – Troubleshooting Application Failure
- Troubleshooting Control Plane Failure
- Version Skew Support Policy
- Facilitating OS Upgrades
- Draining Worker Nodes
- Taint Based Evictions
2. Workloads & Scheduling
- What is Labels and Selectors
- Implementing Labels and Selectors
- What is ReplicaSets
- Creating our first ReplicaSet
- Introduction to Deployments
- Creating our first deployment
- Rolling Back Deployments
- Important Pointers – Deployments
- Generating Deployment Manifests via CLI
- What is DaemonSets
- What is NodeSelector
- What is Node Affinity
- Pod Affinity and Pod Anti-Affinity
- Resource Limits
- Scheduling Pods without a Scheduler
- Taints and Tolerations
- Components of Taints and Tolerations
- Multi-Container POD Design Patterns
- Adapter Pattern
4. Security
- Understanding Authentication
- Introduction to Asymmetric Key Encryption\
- Understanding SSL/TLS
- Creating TLS Certificate for Authentication
- Understanding Authorization
- API Groups, Resources and Verbs
- Access Control based on Namespace
- ClusterRole and ClusterRoleBinding
- Network Security Policies
- Understanding Kubeconfig
- Creating Kubeconfig from Scratch
- Kubernetes Secrets
- Mounting Secrets Inside Pods
6. Cluster Architecture, Installation & Configuration
- Configuring Cluster with kubeadm
- Upgrading kudeadm Clusters
- Kubernetes Cluster from Scratch
- Provisioning Release Binaries – New
- Configuring the Certificate Authority
- Installing and Configuring ETCD – New
- Configuring kube-api server NEW
- Configuring Controller Manager – New
- Configuring Scheduler – NEW
- Validating Cluster Component Status
- New – Worker Node Configuration
- Configuring Networking – New
- New – RBAC for API to Kubelet Communication
- Configuring DNS in Cluster – New
- Kubelet Preferred Instance Type – New
- Backing and Restoring ETCD