Docker and Kubernetes Bootcamp
Hands-on intensive, certification boot-camp to prep you for Docker Certified Associate (DCA) & Certified Kubernetes Administrator (CKA) Exams
Are you ready for it?
Overview
A Hands-on intensive course where you learn by doing. It is geared towards Docker and Kubernetes Certification Docker Certified Associate (DCA) and Certified Kubernetes Administrator (CKA) exam.
Objectives
On completion of this course, participants:
- Docker
- Understand the need of Containerization
- Can explain how docker works and its components
- Can operate docker containers, images, volumes and networks
- Can create and manage Swarm clusters and deploy workloads on them
- Can work on Docker Enterprise products like UCP and DTR
- Kubernetes
- Understand the need of Orchestration
- Can explain the Kubernetes Architecture and its components
- Can operate various Kubernetes resources
- Understand the Networking model and write Kube Manifest files
- Can completely manage a Multi-master Kubernetes Cluster
Good to have
- Hands-on experience in Linux operating systems
- Knowledge on General Application architecture
- Understanding of OS Processes, Threads and Services
- Basic understanding of Networking such as OSI layers, CIDR, etc
- Knowledge on YAML syntax will be an additional benefit
- Participants are expected to bring their own laptops
Delivery Method
- It is an Instructor-led Classroom Training with more focus on hands-on exercises
- Scenarios to practice will be shared through our learning portal at the end of every week
- Other study materials will be accessible at our learning portal
- Lab environments to practice Docker and Kubernetes is provided during training
Duration
Weekend
Every Saturday & Sunday
Timing
10 AM to 5 PM (IST)
Course Fee (incl. of GST)
Docker
INR 17,700
Kubernetes
INR 17,700
Bundle Offer (Docker + Kubernetes)
INR 29,500
Docker Course Outline
Week 1
Virtualization
- Why we need it?
- Resource Restriction
- Isolation
- How its works?
- What's the catch?
Containerization
- Why containers instead of virtual machines?
- How does it work?
- CGroups
- Namespaces
- CoW
- What's the tradeoff?
- Platform dependent
Docker Editions - Community & Enterprise
Docker Installation - Ubuntu 18.04 server & CentOS 7 server
Understanding Docker Architecture
- Docker CLI
- Docker Engine
- ContainerD
- ContainerD-shim
- RunC
- Libcontainer
Working with Docker Containers
- Understanding Container Lifecycle
- Attached and Detached Modes
- Spawning processes using Exec
- Port Binding for exposing containers
- Understanding Restart Policies
- Monitoring Resource usage statistics
- Accessing container Logs
- Passing Environment Variables
- Setting Health Checks for containers
- Setting CPU, Memory, Disk IO and Disk space limits to a container
- Passing DNS servers and setting up Hostnames to containers
Working with Docker Images
- Understanding the Concept of Layers
- Dockerfile
- Instructions - from, entrypoint, cmd, copy, expose, user, workdir, shell, run
- Building Base images from scratch
- Creating Multistage builds
- Best Practices
- Pushing and Pulling images to Docker Hub
- Exporting images as tar archives
- Understanding difference between Docker Import vs. Load
- Understanding Prune vs. Delete
- Discussion on different Storage drivers
Working with Docker Volumes
- Setting up Bind Mounts to a container
- Creating Volume Mounts
- Discussion on Volume drivers
- Understanding Tmpfs Mounts
Working with Docker Networks
- Creating and using Bridge Network with containers
- Using Host Network and Null Network
- Understanding Overlay Network
- Discussion on Network Drivers
- Understanding Network Namespace and Container Network Model
Week 2
Docker Logging
- Discussion on different Logging drivers
- json-file, syslog, etc.
Configuring Docker
- Modifying docker daemon settings
- Editing the docker service
- Turing on experimental mode in docker daemon
- Upgrading a docker engine
Working with Docker Swarm
- Understanding Services
- Creating a Global service and knowing its need
- Creating a Replicated service and understanding its purpose
- Setting up Placement preference and Placement constraints in services
- Scaling the services in and out
- Publishing ports to expose the service containers
- Understanding ingress routing mesh
- Troubleshooting services
- Grouping resources into Stack
- Creating stacks with Docker compose file
- Learning Docker compose structure and syntax
- Managing Nodes in a swarm cluster
- Draining containers from a node
- Understanding Manager and Worker nodes
- Locking and unlocking a swarm node
- Using Docker Secrets to pass confidential data to containers
- Using Docker Configs to pass configuration files to containers
Working with Docker Enterprise
- Universal Control Plane
- Role Based Access Control with roles, users and role-grants
- Using Client Bundles to Authenticate with Docker enterprise cluster
- Docker Trusted Repository
- Setting up Promotions and Policies
- Scanning image for Vulnerabilities
- Understanding Backups in DTR
- Discussions on Load balancing the UCP and DTR APIs
Docker Security
- Signing images with Docker Content Trust
- Working with Authentication and Authorization
- Understanding Swarm MTLS
Docker Certified Associate - Preparation
Kubernetes Course Outline
Week 1
Need of Orchestration
- The role of Hypervisor manager in Cloud services
- Comparing the above with Container layer
History of Kubernetes
Why Kubernetes and why not others orchestrators?
Understanding Kubernetes Architecture
- Segregating the responsibilities of the Master node and the Worker node
- Understanding various Kubernetes components
- Etcd
- Kube API server
- Kube Controller Manager
- Node Controller
- Replication Controller
- Endpoints Controller
- Service Accounts Controller
- Token Controller
- Cloud Controller Manager
- Node Controller
- Route Controller
- Service Controller
- Volume Controller
- Kube Scheduler
- Kubelet
- Kube proxy
- OCI Runtime
- Docker
- ContainerD
- CRI-O
- Frakti
- CoreDNS
- CNI Services
Working with different Kubernetes Resources
- Creating and managing Pods
- Image pull policies
- Pod Scheduling
- Liveness probe
- Readiness probe
- Startup probe
- Requests
- Limits
- Creating tolerations for node taints
- Node Selector
- Affinity
- Load balancing through Services
- Cluster IP
- Node Port
- Load Balancer
- External Name
- Understanding Endpoints
- Managing pods with ReplicaSet
- Scaling the pods
- Discussion on Self-healing
- Using DaemonSet to create pods
- Using Host Port to expose pods instead of services
- Managing Declarative updates with Deployment
- Rolling Update Strategy
- Recreate Strategy
- Managing Nodes
- Applying and removing taints from nodes
- Cordon & Uncordon a node
- Draining all pods from a node
- Creating Namespaces
- Deploying an Ingress Controller like NginxIngress
- Setting up Ingress rules for
- Host based routing
- Path based routing
- Setting up Ingress rules for
- Discussions on other resource types
- StatefulSet
- Job
- CronJob
- HorizontalPodAutoScalers
- Events
- Network Policy
Week 2
Structure of Kubeconfig file
- Creating and using Contexts
- Adding Clusters and managing Users
Understanding Kubernetes Networking Model
- Types of Network
- Flat Routed Network
- Overlay Network
- Discussions on various CNI plugins
- Flannel
- Calico
- Canal
- Weavenet
Understanding Kube Manifest structure and syntax
- Using Labels and Selectors
- Passing meta-data with Annotations
Providing Storage for pods
- Volumes
- Persistent Volumes
- Hostpath
- NFS
- Understanding Persistent Volume Claims and Storage Classes
- Understanding different Access Modes
Passing configuration to pods
- Secret
- Config Map
Authentication and Authorization in Kubernetes
- Discussion on CA & TLS Certificates
- Implementing Role Based Access Control
- Subjects
- Users
- Service Accounts
- Roles
- Role Bindings
- Cluster Role
- Cluster Role Bindings
- Subjects
Cluster Administration
- Single Master cluster and Multi master cluster installation with Kubeadm
- Deploying Kubernetes Dashboard
- Monitoring with Prometheus and Grafana
- Upgrading Kubernetes cluster
Design Patterns
- Sidecar Pattern
- Ambassador Pattern
- Adapter Pattern
API Calls & SDK
Certified Kubernetes Administrator - Preparation