Intermediate Docker and Kubernetes
Duration 4 days Modality Virtual / ILT
Platform Linux and Mac OS Level Intermediate
Overview
Containers are a disruptive technology and change how applications are
perceived, architected, and deployed, but can be challenging to
implement, and manage. A few of the common challenges are service
discovery, self-healing and autoscaling. Attendees will learn the building
blocks of Docker and key container concepts, such as building containers,
optimizing them for speed, size, and security, as well as how to deploy
Kubernetes, a container orchestration system.
This class teaches through lecture and hands-on labs how to implement
and use Kubernetes to manage Docker containers. Kubernetes has many
built-in features that help overcome the challenges of running production
containerized applications through built-in load balancing, health checks,
autoscaling, service discovery, rolling-updates and much more! Attendees
will also learn how to deploy production ready apps using Helm and other
tools from the Kubernetes ecosystem.
[email protected]
(415) 341-7596 (USA)
Audience
The audience for this class is Site Reliability Engineers, Developers,
DevOps, Architects and any other personnel interested in running Docker
containers in a production environment with Kubernetes.
Attendees should have:
Linux skills, including familiarity with command-line options such as ls,
cd, cp and su
Experience editing text files using nano, vim, or any other text-based
editor.
Solutions
Attendees will leave with a clear understanding of the Docker platform,
how to build optimized images using Docker tools and deploy them onto
Kubernetes using Helm. They will gain hands on experience with Docker &
Kubernetes operations including how to write a Pod spec, service config
and deployment manifest. They will also learn how to use persistent
storage, configmaps, secrets and role-based access controls.
What you learn:
1. Docker Review
a. What is Docker
b. Datacenter evolution (Monolithic to containers)
c. Container concepts
d. Docker platform
i. Docker Engine/Daemon
ii. Docker Registries (Public (ECR), Private (Harbor))
1. Storage backends
iii. Docker Compose
2. Container deep dive
a. Cgroups
b. Namespaces
c. Container resource limits
3. Docker monitoring
a. Native monitoring tools
b. 3rd party tools
c. Best practices
4. Docker images
a. Anatomy of a Docker image
b. Manually build a Docker image
c. Dockerfiles
d. Automate build of Docker images
5. Advanced Docker builds
a. Optimizations
b. Dockerfile tips
c. Images
d. Best practices
6. Docker security
a. Host security
b. Base image security
c. Storing secrets
d. Signed images
7. Kubernetes Architecture
a. Cluster Architecture
b. Master Components
c. Node Components
d. Cluster Deployment Options
e. Installation and Configuration options
i. Kubeadm
ii. Docker Desktop
iii. Minikube
iv. Other (Kops, Kubespray etc.)
8. APIs and Access
a. API Access
b. Annotations
c. Kubectl and the API
d. API Objects
e. API Resources
f. RBAC APIs
9. Workload Introduction
a. Pods
b. Application Pattern Controllers
c. ReplicaSets
d. Services
10. Pod Deep Dive
a. What is a Pod?
b. Pod Features
c. Pod Manifest Syntax
d. Pod Command-Line Management
11. Services
a. Design Goals
b. Service Manifest Syntax
c. Different Types of Services
d. Label Selectors
e. Command-Line Management
f. Service Discovery
i. DNS
ii. Environment Variables
g. Advanced Options
i. Mapping to a string
ii. Services without Selectors
12. ConfigMap
a. Overview
b. Manifest Syntax
c. Using ConfigMap values
d. ConfigMap Restrictions
13. Secrets
a. Overview
b. Manifest Syntax
c. Using Secret Values
14. Deployments
a. Overview
b. Stateful Application Schemes
c. ReplicaSet Controller
d. Deployment Manifest Syntax
e. Command-Line Management
15. Microservices Architecture
a. Stateless vs Stateful
b. Service Discovery
c. Common Architecture Patterns
d. Deploying and managing Microservices
16. Scaling Deployments
a. Microservices
b. Pod Scaling
i. Manual
ii. Autoscaling
iii. Horizontal Pod Autoscaler (HPA)
iv. Vertical Pod Autoscaler (VPA)
c. Cluster Autoscaler
17. Deployment Strategies
a. Recreate
b. RollingUpdate
c. Canary
d. Blue/Green
18. Pod Scheduling
a. Overview
b. Node Labels
19. Advanced Pod Scheduling
a. Pod Placement
b. Taints
c. Custom Schedulers
20. Managing Deployment State
a. StatefulSets
b. Features
c. Running Stateful applications on Kubernetes
d. PVC Troubleshooting
e. Recovery from failed Stateful application
f. Use-Cases
21. Network Models
a. Network Design
b. Same Pod Communication
c. Abstraction Through Services
d. Network Addons
e. Detailed Packet Flow
f. Network Policy Implementation
g. Overview of ServiceMesh
22. Ingress
a. Overview
b. Ingress controllers
i. Cloud specifics (AWS, GKE)
ii. Cloud agnostic (nginx, haproxy, traefic)
c. Ingress rules
d. Ingress configuration
23. Helm
a. Overview
b. Architecture
c. Features
d. Charts
e. Chart Templates
24. Health Checks
a. Liveness Probe
b. Readiness Probe
c. Implementing Health Checks
25. Container Orchestration
a. Init-containers
i. Overview
ii. Syntax
iii. Use-Cases
26. Persistent Volumes
a. Types of Storage
b. Volumes
c. Claims
d. Dynamic storage
e. Types of CSI(Troubleshooting)
27. API and Security
a. Authorization Flow
b. Authentication
c. Project Pinniped
d. External Identity Provider
i. LDAP/AD
ii. OAuth
e. Admission Controllers
28. Role Based Access Controls
a. Roles
b. ClusterRole
c. RoleBinding
d. Manifest Syntax