Intermediate Docker and Kubernetes
Intermediate Docker and Kubernetes
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.
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.
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
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
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.)
9. Workload Introduction
a. Pods
b. Application Pattern Controllers
c. ReplicaSets
d. Services
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
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