Kubernetes Docker The Complete Handson Guide

Kubernetes Docker The Complete Handson Guide

Description

Course Description:

Section 1: Kubernetes Introduction

  • What is Kubernetes
  • Why do we use Kubernetes?
  • Monolithic approach for developing applications.
  • Microservices Vs. Monolithic
  • Kubernetes Gateway API
  • Evolution of Containers, Dockers & VMs
  • Microservices running as containers
  • Kubernetes – Orchestration or container management tool
  • Features of Kubernetes

Section2: Architecture of the Kubernetes Cluster

  • The architecture of the Kubernetes Cluster
  • Understand architecture with various examples
  • Working with Kubernetes
  • Roles of Master Node
  • Components of Control Plane (Master Node)
  • API Server
  • Etcd
  • Scheduler
  • Controller Manager
  • Kubelet
  • Service Proxy
  • POD
  • Container Engine – Docker, Containerd, or Rocket

Section 3: Setup of Kubernetes Cluster AWS Environment

  • Setup Kubernetes Master and Worker Node on AWS Environment
  • Update the System
  • Install HTTP package
  • Docker Installation
  • Setup open GPG Key
  • Install the Kubernetes packages
  • Bootstrapping the master node
  • Configure Worker Nodes

Section 4:  Kubernetes Concepts – Cluster types, Minikube Server, YAML, Pod, Kubelet, Ports

  • Kubernetes  Cluster
  • Types of Cluster
  • All-in-one (Single Node Cluster)
  • Single-node, single-master, and multi-worker node clusters.
  • Single-Node etcd, multi-Master, and Multi-Worker Node Cluster.
  • About Minikube 
  • Installation of Minikube Server
  • Create the first POD using manifest file written in YAML Language
  • Kubelet commands
  • Check logs of the container
  • Create multiple containers in a POD
  • Kubernetes Annotations
  • Variables in the YAML file
  • Defining Ports

Section 5: Kubernetes Pod Restart Policy

  • Overview of Pod Restart Policies
  • Three restart policies: Always, OnFailure & Never
  • Lab – Create a pod definition with ‘restartPolicy’ as Always
  • Lab – Create a pod definition with ‘restartPolicy’ as OnFailure
  • Lab – Change the pod definition a bit to check the working of OnFailure
  • Lab – 4. Create a pod definition with ‘restartPolicy’ as Never

Section 6: Labels & Selectors

  • Labels & Selectors
  • Commands for managing labels & selectors
  • Declarative vs. Imperative Kubernetes commands
  • Two types Selectors
  •   Equality Based
  •   Set based
  • Practice Lab – Labels & Selectors
  • Practice Lab – Assign a label to the running POD
  • Practice Lab – Search the pod with equality & set-based
  • Node Selector
  • Lab – Create a pod on a specific node

Section 7: Scaling & Replication

  • What is ReplicationController?
  • Features of RC
  • Practice Lab – Create Replicas of POD using RC
  • Practice Lab – Recreate the POD, if it crashes, fails, or terminated
  • Scale up & scale down the POD as the load increases
  • Practice Lab – Scale up & scale down the POD
  • What is ReplicaSet?
  • Difference between ReplicationController & ReplicaSet
  • Practice Lab – Create Replicas of POD using ReplicaSet
  • Practice Lab – Use set-based match expressions in RS

Section 8: Deployment & Rollback

  • Overview of Deployment and Rollback
  • Manifest for a POD with one container using the deployment object.
  • Lab: Launch an application with two PODs using the deployment object.
  • Lab: Using the deployment object, upgrade an application from version 1 to version 2.
  • Lab: Roll back the application to the previous version.
  • Lab: Roll back the application to any specific version.

Section 9: Kubernetes Networking

  • Overview of Kubernetes Networking
  • Container communication via localhost
  • Practice Lab – container-to-container communication on specific port within a pod
  • Pod-to-pod communication
  • Practice Lab – Pod-to-pod communication
  • Object – Service
  • Why service is required?
  • Service type
  • Cluster IP
  • NodePort
  • LoadBalancer
  • Headless
  • Practice Lab – Access the appl/service using cluster IP within the cluster using the service object
  • Practice Lab – Access the appl/service using NodePort outside the cluster using the service object

Section 10: Volumes in Kubernetes Cluster

  • Overview of Volumes in Kubernetes Cluster.
  • Volume types
  • EmptyDir
  • hostpath
  • Practice Lab: Create a POD with attached volume using volumes.
  • Practice Lab – Attach a shareable volume for containers within a POD.
  • Practice Lab – Attach a shareable volume for containers within a POD as well as with the host or worker node.
  • Practice Lab – EmptyDir
  • Practice Lab – hostpath

Section 11: Persistent Volumes

  • Overview of Persistent volumes
  • PersistentVolumeClaim – PVC
  • Configure a Volume using AWS ElasticBlockStore
  • Configure a Pod to Use a PersistentVolume for Storage
  • Practice Lab – Create a PersistentVolume
  • Practice Lab – Create a PersistentVolumeClaim
  • Practice Lab – Create a Pod to Use a PersistentVolume for Storage

Section 12: Namespaces in Kubernetes

  • Overview of Namespaces
  • Lab – Create new namespaces
  • Lab – Create Pod and Service in Namespaces
  • Lab – Switch between Kubernetes namespaces
  • Lab – Create pods in the namespace.
  • Lab – delete a Kubernetes namespace

Section 13: Resource Management for Pods and Containers

  • Overview of resource management for pods, containers
  • Lab resource-based quota
  • Lab – Apply pod quotas to namespaces
  • Requests and Limits
  • Lab – Set requests and limits in each container running in a pod.
  • Lab – Apply quotas to namespaces
  • Lab – Create pods with resources in namespaces

Section 14: Kubernetes HPA – Horizontal Pod Autoscaler

  • Kubernetes autoscaling basics
  • Lab: Configuring Minikube Cluster
  • Lab: Installation of Metric Server
  • Lab: Creating pods using deployment objects
  • Lab: Configure HPA – Horizontal Pod Autoscaler
  • Lab: A new pod is created automatically if the CPU load reaches a threshold value
  • Lab: A new pod is automatically terminated if the CPU load falls below the threshold value

Section 15: Kubernetes Jobs, Init container

  • Overview of Jobs and cron job pattern
  • Lab: Create a Pod Using Job Object
  • Lab: Run Multiple Pods in Parallel Using Job Object
  • Lab: Create jobs on a repeating schedule using CronJob
  • About Init Container and their use cases
  • Lab: Init Container

Section 16: Introduction to docker containers

  • Introduction about containers
  • Installation of Docker
  • Create a first container
  • Fetch container image from docker hub
  • Run a container in the background, interactive with tty terminal
  • Delete exited dockers using a single command
  • Get complete details of a running container
  • Check logs & stats of a running container
  • Port forwarding
  • exec, rename & restart the running container
  • Attach a container
  • Kill/stop, pause/unpause a container
  • Create, start, the cp command
  • Export/Import Command in Docker
  • Create an image from a running container
  • Pull a specific version image from the Docker hub
  • Image history, inspect & remove the image

Section 17: Dockerfile

  • Overview of Dockerfile, layered architecture
  • Create centos 7 images using Dockerfile
  • Overview of LABEL, ENV & RUN Command
  • Overview of WORKDIR
  • Copy, and add commands with their differences
  • Create a user account with a password using dockerfile
  • CMD Command
  • SSH to a container
  • Overview of EXPOSE Command
  • ENTRYPOINT in Dockerfile

Section 18: Manage Data in Docker

  • Overview of managing data in Docker
  • Volumes
  • Create & attach a volume to a container
  • Delete volumes from the Docker host machine
  • Bind mounts

Section 19: Networking in Docker

  • Bridge networking
  • Run containers in custom-created bridge networking
  • Enable communication between dockers belonging to different bridge network
  • DNS enabled with custom bridge networking
  • Host networking
  • None networking
  • Connect one or more networks to a running container
  • Create a private docker registry
  • How to allow images in the private registry for non-secure network

Section 20: Docker Compose

  • Overview of docker-compose
  • Docker compose Installation
  • Create my first docker-compose file
  • Create the docker-compose file in JSON language
  • Learn basic commands
  • docker-compose up
  • docker-compose down
  • docker-compose create
  • docker-compose start
  • docker-compose stop
  • docker-compose rm
  • docker-compose images
  • docker-compose ps
  • docker-compose pause
  • docker-compose unpause
  • docker-compose kill
  • docker-compose port <servername> port
  • docker-compose logs
  • docker-compose exec
  • docker-compose run
  • docker-compose scale
  • docker-compose top
  • Attach a volume & port mapping using docker-compose
  • Build a custom image using docker-compose

Leave a Reply