This course provides a comprehensive introduction to Kubernetes, covering its architecture, components, and the practical skills needed to deploy, manage, and scale containerized applications using Kubernetes.
Module 1: Introduction to Kubernetes
Lesson 1.1: What is Kubernetes?
- Overview of Kubernetes
- History and development
- Benefits and use cases
- Moodle Docs: Overview of Kubernetes
Lesson 1.2: Kubernetes Architecture
- Components: Master Node and Worker Nodes
- API Server, Scheduler, Controller Manager, etcd
- Kubelet, Kube-proxy, Container Runtime
- Moodle Docs: Kubernetes Architecture
Lesson 1.3: Kubernetes Concepts and Terminology
- Pods, Nodes, Clusters
- Namespaces, Labels, Selectors
- ReplicaSets, Deployments, Services
- Moodle Docs: Kubernetes Concepts
Module 2: Setting Up Kubernetes
Lesson 2.1: Installing Kubernetes Locally
- Minikube installation and setup
- Kubernetes on Docker Desktop
- Moodle Docs: Installing Minikube
Lesson 2.2: Setting Up Kubernetes on Cloud Providers
- Google Kubernetes Engine (GKE)
- Amazon Elastic Kubernetes Service (EKS)
- Azure Kubernetes Service (AKS)
- Moodle Docs: Kubernetes on Cloud
Module 3: Working with Pods
Lesson 3.1: Creating and Managing Pods
- Pod YAML files
- kubectl commands for Pod management
- Moodle Docs: Managing Pods
Lesson 3.2: Multi-Container Pods
- Sidecar, Ambassador, and Adapter patterns
- Communication between containers
- Moodle Docs: Multi-Container Pods
Module 4: Deployments and Scaling
Lesson 4.1: Deployments
- Creating and managing deployments
- Rolling updates and rollbacks
- Moodle Docs: Kubernetes Deployments
Lesson 4.2: Scaling Applications
- Horizontal Pod Autoscaler
- Manual scaling
- Moodle Docs: Scaling Applications
Module 5: Networking in Kubernetes
Lesson 5.1: Service Discovery and Load Balancing
- Services: ClusterIP, NodePort, LoadBalancer
- Ingress Controllers and Ingress Resources
- Moodle Docs: Kubernetes Services
Lesson 5.2: Network Policies
- Configuring network policies
- Example use cases
- Moodle Docs: Network Policies
Module 6: Storage in Kubernetes
Lesson 6.1: Persistent Storage
- Volumes and PersistentVolumeClaims (PVC)
- Storage Classes
- Moodle Docs: Kubernetes Storage
Lesson 6.2: ConfigMaps and Secrets
- Managing configuration data with ConfigMaps
- Managing sensitive data with Secrets
- Moodle Docs: ConfigMaps and Secrets
Module 7: Monitoring and Logging
Lesson 7.1: Monitoring Kubernetes
- Using Prometheus and Grafana
- Metrics Server
- Moodle Docs: Kubernetes Monitoring
Lesson 7.2: Logging
- Cluster-level logging with EFK Stack (Elasticsearch, Fluentd, Kibana)
- Moodle Docs: Kubernetes Logging
Module 8: Advanced Topics
Lesson 8.1: Helm - The Kubernetes Package Manager
- Helm charts
- Managing applications with Helm
- Moodle Docs: Helm
Lesson 8.2: Operators and Custom Resources
- Custom Resource Definitions (CRD)
- Kubernetes Operators
- Moodle Docs: Kubernetes Operators
Module 9: Kubernetes Security
Lesson 9.1: Security Best Practices
- Role-Based Access Control (RBAC)
- Pod Security Policies
- Moodle Docs: Kubernetes Security
Lesson 9.2: Securing the Cluster
- Network security policies
- Secrets management
- Moodle Docs: Securing Kubernetes
Module 10: Hands-On Projects
Lesson 10.1: Deploying a Multi-Tier Web Application
- Step-by-step deployment
- Scaling and managing the application
- Moodle Docs: Kubernetes Projects
Lesson 10.2: Continuous Integration and Continuous Deployment (CI/CD) with Kubernetes
- Integrating Jenkins or GitLab CI/CD with Kubernetes
- Automated deployment pipelines
- Moodle Docs: CI/CD with Kubernetes
- Teacher: Zybow Administrator