Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Udemy

Docker & Kubernetes: The Practical Guide [AWS Platform]

via Udemy

Overview

Real-time project - Deploy an application to a Kubernetes cluster using Jenkins CI/CD pipeline, Ansible, Docker, Webhook

What you'll learn:
  • How Should a Kubernetes Cluster Be Managed?
  • Making a Kubernetes Cluster from Scratch "The Hard Way"
  • How to Secure a Kubernetes Cluster
  • Real-time project: Use the Jenkins CI/CD pipeline to deploy an application to a Kubernetes cluster.
  • Architecture of the Kubernetes Cluster
  • Microservices Vs. Monolithic
  • Components of Control Plane - API Server, Etcd, Scheduler, Controller Manager
  • Setup of Kubernetes Cluster AWS Environment
  • Types of Cluster
  • Installation of Minikube Server
  • Labels & Selectors
  • Scaling & Replication
  • ReplicationController & ReplicaSet
  • Deployment & Rollback
  • Kubernetes Networking
  • Volumes in Kubernetes Cluster
  • Persistent Volumes
  • Beginner level introduction to Docker
  • Learn practical techniques for creating and deploying containers on Docker platform.
  • Build Docker images using Dockerfiles & containers with hands-on exercises
  • Manage Data & networking in Docker
  • Use Docker compose to create multi-container applications
  • Practical approach to learn Docker for the Absolute Beginner
  • Namespaces in Kubernetes
  • Resource Management for Pods and Containers
  • Kubernetes HPA - Horizontal Pod Autoscaler
  • Kubernetes Jobs, Init container
  • Quizzes

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, orterminated

  • 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 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

Section 21: Real-time project - Deploy an application to a Kubernetes cluster using Jenkins CI/CD pipeline, Ansible, Docker, Git, Webhook etc.


Taught by

Shikhar Verma • 90k+ Students Worldwide

Reviews

4.6 rating at Udemy based on 137 ratings

Start your review of Docker & Kubernetes: The Practical Guide [AWS Platform]

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.