Docker Kubernetes

Docker is a powerful software platform that enables rapid creation, testing, and deployment of applications. It achieves this by packaging software into standardized units known as containers. These containers encapsulate all the necessary components for the software to function seamlessly, including libraries, system tools, code, and runtime environments. With Docker, you can easily deploy and scale applications in any environment, while ensuring consistent execution of your code.

Kubernetes, on the other hand, is an open-source orchestration system specifically developed to manage containerized applications in clustered environments across multiple hosts. It provides advanced features for automating the deployment, scaling, and management of containerized applications, allowing for efficient utilization of resources and simplified administration.

Who can benefit from this course? Our course is designed for a wide range of individuals, including system administrators, developers, and anyone involved in the technical aspects of the DevOps methodology. Whether you are responsible for managing systems, developing applications, or actively involved in the DevOps workflow, this course will equip you with the knowledge and skills needed to successfully set up and manage Linux containers using Docker.

By enrolling in this course, you will gain the expertise necessary to leverage the full potential of Docker and Kubernetes, empowering you to streamline application deployment, enhance scalability, and optimize resource utilization. Take a step towards mastering containerization technologies and advance your career in the dynamic world of DevOps.

Curiculum

  • Bare-metal servers
  • Virtual Machine
  • Containerization
    • Container tools
      • lxc, Docker,containerd etc.
    • Docker Engine Installion
      • Manual deployment of Docker CE on Ubuntu and CentOS
      • Automate deployment with help of Vagrant
    • Basic introduction to Docker Engine
      • Different between Desktop and Server
      • version check
      • default locations
      • commands execution
    • Docker architecture
      • Docker daemon
      • Docker client
      • Docker registry
      • Docker objects
      • images
      • containers
      • networking
      • Services
    • Underlying technologies of Docker
      • namespaces like pid,net,ipc,mnt,uts
      • cgroup
      • UFS (Union File System)
      • Container format like libcontainer, BSD jails etc.,
    • Images and container management
      • docker image registries (like Docker Hub, JFrog, ECR, ACR etc.,)
      • docker image pull/push
      • container creation
      • Sample application deployment like web server
      • Basic things that to be considered while working with images and containers
    • Docker networking
      • Understanding netwokring like IP, Classes, subnetmask, CIDR, gateway, broadcast, public and private network in each class etc.
    • Docker Engine network types
      • host
      • bridge
      • null
      • overlay
      • Docker Network Plugin overview
    • Docker storage
      • Basic understanding of emphemeral and persistent storage
      • Types of volume mounts
      • Bind mount
      • Volume mount
      • tempfs mount
    • Backup and restore of Images, containers, and Docker/Application data
    • Building custom images
      • Dockerfile parameters
      • Develop custom image through Dockerfile
      • Convert container into Image
      • How to store Images in Container registries
    • Registry management
      • Docker Hub
      • Gitlab registry
      • Local registry
    • Securing Docker
      • Ensure Docker communication through TLS
      • Firewall ports
      • Communication to Docker through Unix socket and tcp protocal
    • Docker overlay network configuration(hardway) without using Docker Swarm
    • Docker Dashboard access using Portainer
    • Docker compose and Docker swarm
      • Building compose file for orchestration of application deployment
      • Docker machine management
      • Deployment and understanding of Docker Swarm cluster
      • Difference between docker swarm and kubernetes
    • Task
      • Deployment of application like nginx, mariadb and jenkins
      • Deploy wordpress as webserver and database for storage using Dockercompose
      • Deployment and understanding of Docker Swarm cluster
      • Deploy Node.js application with custom Dockerfile
      • Automate Image build with help of Jenkins CICD pipeline
  • what is JSON?
  • how to write a JSON file and validate for testing?
  • what is YAML?
  • how to write YAML files and validate for testing?
  • kubernetes components and responsibility controller nodes
    • kube-apiserver
    • kube-control-manager/cloud-control-manager
    • kube-schduler
    • calico,flannel(deprecated from 1.18),wavenet etc
    • coreDNS
    • etcd key-value pair storage
    • kubelet
    • kube-proxy
    • Docker Engine/containerd/cri-o etc
  • kubelet
  • kube-proxy
  • Docker Engine/containerd/cri-o etc.
  • Deployment of kubernets cluster using microk8s(ubuntu),minikube,kubeadm
  • Three nodes (1 for controller and 2 for compute nodes)
  • POD object creation using single container and multi-container
    • Understanding common networking and common storage in POD (shared namespaces)
    • Sample application deployment using nginx for single container in POD
    • Multi-container deployment, one for webapplication and second for data pull
    • POD creation with initContainer advantages for pre-request
    • static POD deployment
    • Deploying application from Private repository
    • resource allocation like CPU and MEMORY
  • ReplicationController object (RC)
    • When to use replication controller?
    • Disadvantages of deploying application with single POD
    • When to use replication controller?
    • Understanding template and selector parameters
  • Replica Set object (RS)
    • Difference between Replication Controller and Replica Set
    • Advantages of adding match Labels
    • when to use replica Set?
  • Deployment object (deploy)
    • Advantages of Deployment over POD, RC and RS
    • Sample application deployment like Jenkins, nginx and capture the advantages over other objects
    • Scaleout and Scale in for Deployment
    • Deployment Strategies like Rolling Update and Recreate difference
    • Rollout, Rollback and Rollout History of deployment
  • Daemon set object (DS)
    • DaemonSet usecases over deployment object
    • Advantages of using monitoring tools to deploy through DaemonSet object
    • Deployment Strategies like Rolling Update and On Delete difference
    • Rollout, Rollback and Rollout History of DaemonSet
  • StatefulSet object (sts)
    • Difference between stateful and stateless applications
    • StatefulSet application deployment advantages
    • Scaleout and Scalein for Deployment
    • Deployment Stratagies like RollingUpdate and OnDelete difference
    • Rollout, Rollback and Rollout History of StatefulSet
  • volumes
    • Empheimeral and persistent storage differences
    • Different types of volume plugins like emptyDir, hostPath, NFS etc.,
    • Do’s and Dont’s of using volumes for application deployment
  • PersistentVolume, PersistantVolumeClaim and StorageClass (PV and PVC)
    • Advanatages of using PV over volume plugins for data dependent applications
    • Static and Dynamic PV creation
    • PVC assignment in POD, Deployment, Daemonset, StatefulSet objects
    • StargaeClass creation for Dynamic provision
    • NFS, Ceph RBD storage as examples
  • Services (svc)
    • Exposing application running on different object through service
    • Understanding difference between ClusterIP, NodePort, Load Balancing, ExternalIP and ExternalName
    • When to use these different types of services?
  • secrets and configmap (secret, cm)
    • How to pass sensitive data through secret like certs, password, token etc.,
    • How to pass sensitive data through secret like certs, password, token etc.,
    • Using secret in POD object through env and volumes
    • Using secret in POD object through env and volumes
  • Ingress (ing)
    • Access application deployed with the cluster through IngressController
    • Deploying Nginx IngressController
    • Ingress rules creation secured and non-secure communication
  • Horizontal POD AutoScalling (HPA)
    • HPA deployent to test auto scalling
    • Deployment of metric server to achieve HPA
  • Scheduling and probes
    • Different types of scheduling like nodename, nodeSelector, podAffinity, podAntiAffinity, nodeAffinity
    • Advantages of using liveness, readiness and startup probes to verify application availability
  • Jobs and CronJobs
    • How to achieve auto backup and restore using CronJobs for application like etcd key-value pair storage
    • for kubernetes cluster
    • Jobs responsibility
  • calico networking
    • How to migrate from flannel to calico?
    • How to use flannel for POD networking and Calico for network security
    • calicoctl operations
    • network policy and global network policy
  • Authetication and authorization
    • authetication
    • user, group and serviceaccount (token), certs
    • kubeconfig entries and access multiple cluster through kubernetes config file
    • autherization
    • Role Back Access Control (RBAC), ABAC, Node, Webhook
    • Role, RoleBinding, ClusterRole, ClusterRoleBinding
  • Dashboard
    • deployment of kubernetes dashboard and creating kubernetes object through dashboard
    • How to authenticate to dashboard through token and kubeconfig
  • Task
    • wordpress and database application deployment
    • Jenkins deployment with data persistent after upgrading/downgradeg
    • Backup and restore of etcd service data using cronjob
    • kubernetes upgrade from one version to another (1.20.1 to 1.20.2)
    • maintaince task using taint and toleration
    • Automate application deployment with the help of GitOps and ArgoCD
    • Understanding CRD and CR for operators
  • Docker Image vulnerability scanning using Trivy tool as part of DevSecOps
  • Kubernetes Cluster scanning using kubescan etc.,
  • Helm charts
    • what is chart and maifest?
    • helm architecture and components
    • helm configuration and repo setup
  • helm application deployment
    • Deploy nginx web application with custom values
    • Rollout and Rollback application using helm cli
    • test applications deployed through Helm using #helm test
  • helm custom chart development
    • helm default directory structure
    • update _helper.tpl file for custom methods
    • how to call data from Chart.yaml and values.yaml file to templates
  • Deploy monitoring tools using custom helm charts
    • EFK deployment
    • Prometheus and Grafana deployment
  • GitOps
    • What is Version Control System and types?
    • Git advantages
    • Git workflow
  • Git commands
    • add
    • commit
    • init
    • rm
    • push
    • pull
    • clone
    • restore
    • merge
    • rebase
    • fetch
    • show
    • log
    • tag
    • branche
  • GitHub or GitLab as a remote repository
  • Git Branching strategies for GitOps culture
  • What is GitOps?
  • GitOps tools
    • ArgoCD
    • FluxD
  • ArgoCD deployment on kubernetes cluster
  • Integrating GitHub with ArgoCD for Continues Deployment
  • Deployment strategies like Rolling Update, Blue-green deployment, and Canary deployment

Schedule

Our course schedule is thoughtfully designed to provide flexibility and convenience for our students. We understand that everyone has different commitments and time constraints, which is why we offer various scheduling options to suit your needs.

Monday to Friday (7am – 6pm​)

Saturday & Sunday (9am – 4pm​)

Kubernetes is Easy ! - Step by step explained for Beginners

Join now
Event from Us

Upcoming Batches

JUN

27

08:00 AM - 03:30 PM
45 Days
Docker & Kubernetes Course
Our Courses
Choose from List

Most Popular Courses