Course Overview
Schedule Dates
Curriculum
-
Day – 1 Docker Introduction
-
Provisioning
-
Custom images
-
Day – 2 Container Volume Management
-
Docker Networking
-
Docker Compose
-
Kubernetes Platform
-
Day – 3 Kubernetes Setup and Validation
- Understanding different tools for deploying Kubernetes Cluster
- Release Binaries, Provisioning and Types of Clusters
- Building the Kubernetes Cluster using kubead
- Installing Kubernetes Master and Nodes
- Configuring Secure Cluster Communications
- Testing the Cluster
- Lab: Deploying Kubernetes Cluster using Kubeadm
- Lab: Adding Nodes to Kubernetes Cluster
- Lab: Deploying and Accessing Kubernetes Dashboard Service
-
Working with Pod
- Pod Overview
- Understanding Pod Lifecycle
- Multi-container Pod
- Static Pod
- Init Containers
- Labels, Selectors & Annotations
- Lab: Imperative Commands and Formatting Output with kubectl
- Lab: Working with Single Container Pods
- Lab: Creating multi container Pod
- Lab: Creating init container Pod
- Lab: Working with Static Pod
- Lab: Working with Static Pod
-
Kubernetes Networking and Service
- Cluster Communications
- • Pod and Node Networking
- • Container Network Interface (CNI)
- • Service Networking: ClusterIP, NodePort & Load Balancer
- • Ingress Rules
- • Cluster DNS
- • Network Policies
- Lab: Exposing Applications using various types of Services
- Lab: Install and Configure Ingress Controller to expose nginx based Service
- Lab: Create Network Policies to control traffic flow
-
Day – 4 Application Lifecycle Management
- Pods: Single Container, Multi Container, Static, Init
- Deploying Applications in the Kubernetes Cluster
- Controllers: RC, RS, Deployment, Job, CronJob, Statefulsets
- Deploying an Application, Rolling Updates, and Rollbacks
- Configuring an Application for High Availability and Scale
- Imperative Commands & Manifests (YML Intro)
- Lab: Deploying Application using Replication Controller
- Lab: Deploying Application using Replica Set
- Lab: Rolling Updates and Rollbacks using Deployment
- Lab: Deploying Application using Daemon Set
- Lab: Deploying StatefulSet Application
- Lab: Deploying Multi-Tier Application
- Lab: working with Job and CronJob
-
Working with Kubernetes Scheduler
- Pod Scheduling within the Kubernetes Cluster
- Configuring the Kubernetes Scheduler
- Running Multiple Schedulers for Multiple Pods
- Taints, Tolerances, Node Selector, labels & Selectors
- Scheduling Pods with Resource Limits and Label Selectors
- Displaying Scheduler Events
- Lab: Manually scheduling Pod
- Lab: Scheduling Pod based on Node Selector and Labels
- Lab: Taints and Tolerations
- Lab: Working with Affinity and Anti-Affinity
-
Storage
-
Day – 5 Security
- Securing the Kubernetes Cluster
- Kubernetes Security Primitives
- Cluster Authentication and Authorization
- Creating TLS Certificates
- Service Accounts, Users
- Roles and Role Bindings
- CluserRole and Cluster Role Binding
- KubeConfig, Security Context
- Lab: Working with Namespaces and RBAC
- Lab: Working with Security Context
-
Logging and Monitoring
-
Managing Cluster
-
Troubleshooting
Docker is an operating system for containers. Similar to how a virtual machine virtualizes (removes the need to directly manage) server hardware, containers virtualize the operating system of a server. Docker is installed on each server and provides simple commands you can use to build, start, or stop containers.
Some benefits of using Docker are
Return on investment & cost savings. The first advantage of using docker is ROI. ...
Standardization & productivity. ...
CI efficiency. ...
Compatibility & maintainability. ...
Simplicity & faster configurations. ...
Rapid Deployment. ...
Continuous deployment & testing. ...
Multi-Cloud Platforms.
Docker is a suite of software development tools for creating, sharing and running individual containers; Kubernetes is a system for operating containerized applications at scale. Think of containers as standardized packaging for microservices with all the needed application code and dependencies inside.
There are several benefits of using Kubernetes for container orchestration, including:
Scalability
High Availability
Flexibility
Portability
Automation