Instructor-led lectures with more than 35 hands on labs on per student private environment
Part 1 : Containerization with Podman & Docker and Best Practices
- Introduction to Containers
- Why Containers?
- Container Implementations
- Docker & Podman
- Getting Started with Containers
- Installing Podman
- Starting your First Container
- Dissecting Containers aka Containers without Docker & Podman
- Managing Container Lifecycle
- Managing & Inspecting Containers
- Persistent Volumes
- Container Networking
- Managing Container Image Lifecycle
- Container Image Implementation
- Managing & Inspecting Images
- Creating Images the Quick'n'Dirty way
- Containers for Production
- Container based Systemd Services
- Systemd based Containers
- Container Orchestration
- Container Image Authoring
- The Podman Way aka Introducing Buildah
- The Docker Way aka Dockerfile Authoring
- Best Practices
- Working with Base Images
- Minimizing Layers
- RUN The Right Way
- Speeding Up Slow Builds
- Multi-Stage Builds
Part 2 : Kubernetes Implementation and Best Practices
- Introduction
- Container orchestration
-
Container Management Systems Limitations
-
Kubernetes Architecture
- introduction
-
-
masters/nodes
-
etcd
-
kube-apiserver
-
kubelet
-
kube-proxy
-
controller manager
-
kube scheduler
-
-
Design and install a Kubernetes cluster
-
Labs
- Installing a multi-node Kubernetes cluster
- Kubernetes command-line tools
-
Imperative vs declarative
-
Kubectl
-
Krew
-
Kube ns
-
kube ctx
-
Stern
-
K9s
-
Labs
-
Getting started with Kubernetes
-
Kubectl commands
-
Tools of the trade
-
- Kubernetes Core concepts
-
Namespaces
-
Pod and Multi-container Pods
-
Labels and Selectors
-
Replication controllers / ReplicaSets
-
Deployments (Rolling Updates and Rolling Back)
-
ConfigMaps and Secrets
-
Labs
-
Kubernetes Core Concepts
-
Rolling Update and Rollback
-
Labels and Selectors
-
ConfigMaps and Secrets
-
- Kubernetes Networking
-
Docker Networking
-
Cluster Networking
-
Pod Networking
-
Service Networking
-
CoreDNS in Kubernetes
-
Ingress
-
Labs
-
Networking
-
Services
-
Ingress
-
- Scheduling
-
Manual Scheduling
-
Taints and tolerations
-
Node labels and Selectors
-
Node Affinity
-
Static Pods
-
DaemonSets
-
Labs
-
DaemonSets
-
Jobs and Cronjobs
-
- Kubernetes and Storage
-
Persistent Volumes
-
Persistent Volume Claims
-
Dynamic Provisioning with StorageClass
-
Labs
-
Volumes, Persistent Volumes and PVCs
-
Wordpress/ Mysql Implementation
-
PHP Guestbook ~ 3 Tier App
-
- Kubernetes Security
-
Role Based Access Control
-
Service Accounts
-
Security Contexts
-
Resource Quotas
-
Network Policy
-
Labs
-
RBAC and Cluster Roles
-
Service Accounts
-
Security Contexts
-
Resource Quotas
-
Network Policy
-
- Logging and Monitoring
-
Helm
-
Setting up the EFK stack - Elasticsearch Fluentd Kibana
-
Operators
-
Monitoring Cluster Components
-
Setting up the GAP stack - Grafana Alertmanager Prometheus
-
Labs
-
Helm
-