Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 6

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

You might also like