Docker and Kubernetes are important technologies that can help you scale your applications.

Docker is a platform for packaging, deploying, and running applications in containers. Kubernetes is a system for managing containerized applications across a cluster of nodes. It provides basic mechanisms for deployment, maintenance, and scaling of applications.

Introduction to Containers

* Docker  installation and set up.

* Docker images and containers

* Building a Dockerfile with best practices

* Logging , networking  and security

* Docker volumes

* Image registries

* Labs

Kubernetes introduction

* What is Microservices  – principle and forecast

* Architecture deep dive

* Installation on multiple environments ( cloud , local , vagrant )

* Labs on identifying the  operational pieces ( Kubelet , apiserver, controllers , etcd )

*  Kubernetes the hard way

Introduction to Kubernetes first class citizen - pods

* YAML definition

* Introduction of Pods

* Listing pods through

* Creation of namespaces

* Labs on pod creation , imperative and declarative

Managed pods

* Replicasets

* Daemonsets

* Jobs

* Deployments

* Labs and exercises

Pods in-depth

* InitContainers

* Health checks

* Accessing containers

* Requests and limits

* Labs and exercises

Secrets and Configmaps

* What they are

* How to create them

* How to reference them in a pod

* Labs and exercises

Volumes

* Types of volumes

* Creating a volume

* Dynamic volume provisioning

* Labs on using configmaps , secrets , OpenEBS or rook ( Install one of the CAS -> Longhorn preferably )

Kubernetes Networking

* CNI

* ClusterIP

* Nodeport

* Loadbalancer

* Ingress

* Certmanager for TLS

Security

* RBAC

* Network Policies

* Security Context ( for both pod and container )

* PSP

* PSP replacement

* Kyverno

* CIS Benchmark

Security

* RBAC

* Network Policies

* Security Context ( for both pod and container )

* PSP

* PSP replacement

* Kyverno

* CIS Benchmark