Kubernetes for Programmers
Duration
2 days
Description
This comprehensive course provides a deep dive into Kubernetes, the leading container orchestration platform. It covers everything from the basics of Kubernetes and containerization to advanced topics such as application lifecycle management, networking, storage, scheduling, and security. The course also includes hands-on exercises with popular Kubernetes tools and integrations with CI/CD pipelines and public cloud. Whether you're a software developer, DevOps engineer, or IT professional, this course will equip you with the skills to effectively manage and scale applications using Kubernetes. The course is designed for professionals with a background in computer programming, and it's a great way to stay up-to-date with the latest trends in cloud computing and container orchestration.
Objectives
- Understand the fundamentals of Kubernetes and container orchestration, including local Kubernetes platforms.
- Set up a development environment using Docker Desktop and Visual Studio Code.
- Gain proficiency in YAML, a human-readable data serialization language.
- Learn Kubernetes core concepts and tools, and work with pods.
- Master application lifecycle management in Kubernetes, including deployments and rollouts.
- Understand Kubernetes networking and storage, including services, ingress, and volume types.
- Learn about Kubernetes scheduling, jobs, and configuration management.
- Familiarize with monitoring, logging, and security in Kubernetes, and integrate Kubernetes with CI/CD pipelines and public cloud.
Prerequisites
Basic programming and Linux command-line experience. Prior experience with Docker is strongly suggested but not required.
Training Materials
All students receive comprehensive courseware covering all topics in the course. Courseware is distributed via GitHub in the form of documentation and extensive code samples. Students practice the topics covered through challenging hands-on lab exercises.
Software Requirements
Students will need a free, personal GitHub account to access the courseware. Student will need permission to install Docker Desktop (or MicroK8s), Kubectl, Visual Studio Code, and Visual Studio Code Extensions on their computers. As an alternative to Docker Desktop, the course can be taught with MicroK8s.
Outline
- Overview of Kubernetes and Container Orchestration
- What is Kubernetes (K8s)?
- What is Containerization?
- What is Orchestration?
- Local K8s Platforms
- Docker Desktop K8s
- MicroK8s
- Minikube
- Development Environment
- Docker Desktop (or MicroK8s)
- Visual Studio Code and useful Extensions
- Container Registries
- YAML Fundamentals
- What is YAML?
- Basics
- Syntax & Comments
- Data Types & Structures
- Multi-Line Strings, Lists, and Maps
- Kubernetes Core Concepts
- Kubernetes Architecture
- Cluster Communication
- Objects
- Object Properties
- Labels & Selectors
- Annotations
- Object Management
- Image Fundamentals
- Container Fundamentals
- Pod Fundamentals
- Working with Pods
- Kubernetes Tools
- kubectl
- K8s Dashboard
- Helm
- Application Lifecycle Management
- Containers, Pods, and Deployments
- Container Lifecycle
- Pod Lifecycle
- Container Environment and Commands
- ReplicaSet
- StatefulSets
- Deployments
- Deployment Rollouts
- Networking
- Container Network Interface (CNI)
- Network Model
- Services
- Service Discovery & Core DNS
- Ingress
- Gateway API
- Network Policies
- Storage
- Volume Types
- Persistent Volumes
- Projected Volumes
- Ephermal Volumes
- Storage Classes
- Snapshots
- Health Monitoring
- Scheduling
- Controlling and Tracking Resources
- Scheduler Operation
- Daemon Set
- Node Affinity & Anti-affinity
- Pod Affinity & Anti-affinity
- Taints & Tolerations
- Jobs and Cron Jobs
- Jobs
- Cron Jobs
- Configuration
- Configuration Management
- Config Maps
- Secrets
- Environment Variables
- Configuring Applications
- Monitoring and Logging
- Monitoring
- Logging
- Metrics Server
- Prometheus
- Grafana
- Security
- Security Overview
- Security Context
- Network Policies
- Secrets
- Service Accounts
- Pod Security Policies
- Role-Based Access Control (RBAC)
- Security Best Practices
- Overview of Kubernetes and Public Cloud
- Managed Kubernetes Services (choose one)
- Microsoft AKS
- Amazon EKS
- Google GKE
- Digital Ocean Kubernetes
- Managed Kubernetes Services (choose one)
- Kubernetes and CI/CD
- Continuous Integration, Delivery & Deployment
- Kubernetes in CI/CD Pipeline
- GitHub Actions
- GitLab CI/CD
- Azure DevOps
- Jenkins
- Deploy New Containers in a Pipeline
- Conclusion
- Summary of Key Concepts
- Q&A
- Further Resources and Next Steps