For Docker
- A general idea of virtualization or container software
- Familiarity with Linux and the command line, but not mandatory
- A general understanding of software installation, packaging, dependencies, etc.
For Kubernetes
- Experience with Docker containers
- Familiarity with the Linux command line
- An understanding of networking concepts
- A general understanding of "continuous integration" (CI) / "continuous deliver" (CD) concepts
This course is for following professionals:
- Software Professionals (Developers & Operations)
- Testing Professionals
- Software Architects and Designers
- DevOps Engineers
- Managers who are technical subject matter experts, leading software development projects
Docker is an open-source platform that automates the building, shipping and running of software applications inside containers. Multi-container Docker applications can be further defined using Compose. Swarm is a tool that controls a cluster of Docker hosts and exposes them as a single "virtual" host. By pooling together numerous Docker engines, Swarm allows IT operations teams to transparently scale up their software deployment to many hosts. You will also learn how to use Kubernetes to automate deployment, scaling, and management of containerized applications at scale in a clustered environment. Finally, on how to streamline the process of installing and managing Kubernetes applications with Helm.
By the end of this course, participants will be able to:
- Set up and run a Docker container.
- Deploy containerized server and web application.
- Build and manage Docker images.
- Set up a Docker Swarm and Kubernetes cluster.
- Deploy Docker hosts across multiple machines using Compose and Swarm.
- Manage a Swarm cluster in a live lab environment.
- Secure and troubleshoot Docker hosts within their Swarm cluster.
- Use Kubernetes to deploy and manage different environments under the same cluster.
- Secure, scale and monitor a Kubernetes cluster.
- Share applications as Helm charts.
Each topic features a variety of exercises & assignments for learners to practice and meet the learning objectives of this course.
Docker (1 - 2 day)
Concepts / intro
Virtualization overview
Building images
Using volumes
Networking and service discovery
Docker-Compose
Troubleshooting
Kubernetes (1,5 - 3 days)
Concepts / intro
Cloud native apps design
Core concepts: Pods, Labels, Controllers, Services, Secretes, Namespaces
Service discovery, scaling and load balancing
Ingress controller and reverse proxy
Networking and Network Policies
Volumes, PVC and Storage Classes
Kubernetes installation, initialisation and maintenance
Authentication, Authorization and Access Control
Applications Auto Scaling
Advanced Scheduling
Achieving High Availability on the cluster and application level
Helm
Troubleshooting
DevOps and automation beyond Kubernetes (0 - 0,5)
Concepts / intro
CI/CD using GitLab (demo)