Kubernetes Online Workshop
Duration : 3 Days (9:30 AM to 5:30 PM)
Date : 27, 28 29 January 2022
Overview
The course is designed to help participants understand Kubernetes concepts and perform hands-on Kubernetes operations. At the end of this Hands-on Corporate Training, participants would be able to :
- Understand the core concepts of Docker and Kubernetes
- Install Docker on Linux Server
- Deploy and manage container on Linux Docker host
- Deploy Kubernetes cluster of One Master node
- Deploy 3 minion nodes in Kubernetes cluster
- Deploy POD, Deployment, Replication controller
- POD auto-scaling
- Helm charts
- Rolling update
- Kubernetes cli, labels, secrets
- POD CPU and memory reservation
Prerequisites
- Proficiency with the Linux command-line interface and broad understanding of Linux system administration
- Basic knowledge of Linux containers like Docker is recommended
Course Contents
Day 1
- Introduction to YAML structure
- What is Virtualization?
- What is Containerization? Virtualization vs Containerization
- Docker Essentials (A walk through)
- Docker networking ( A walk through this will help during Kubernetes )
- Install Virtual Box Install Docker/Docker-client
- Write a simple Docker File using YAML format
- Create a Docker Image using Docker File Deploy & Run the Docker Image using
- Nginx/Apache docker image
- Introduction to Kubernetes Myth busters of Kubernetes – What Kubernetes is not?
Kubernetes Architecture
Learning Objectives: Upon completion of this module, one will get to know about the key components that build a Kubernetes cluster – Master Components, Node components and AddOns. We will learn how to install Kubernetes from scratch on Ubuntu VMs.
Topics:
- Introduction to Kubernetes Master kube-apiserver
- etcd key-value store kube-scheduler
- kube-controller-manager cloud-controller-manager
- Components of Cloud Controller Manager, Node Controller, Volume Controller, Route Controller, Service Controller
- Introduction to Node Components of Kubernetes
- Docker kubelet
- kube-proxy kubectl
- Additionally in Kubernetes Cluster DNS, Kubernetes Dashboard, Container Resource
- Monitoring, Cluster level logging
Hands On/Demo:
- Create 2 Centos(17.10) VM’s in Virtual box
- Create a single-node cluster using VMs
- Install KubeCtl, a command line tool to manage clusters
- Start a single-node cluster locally
- Get the cluster details and List all nodes associated with the cluster
- Stopping a cluster Deleting a cluster
- Installing & Accessing the Kubernetes dashboard
Minikube
Day 2
Deploy an app to Kubernetes Cluster
Learning Objectives: In this segment, you will understand how to deploy an app using Kubectl to the local Kubernetes cluster and why we need a Pod.
Topics:
- Introduction to Pods and Why do we need a Pod?
- Pod Lifecycle Working with Pods to manage multiple containers
- Pod Preset What is a Node?
- kubectl basic commands and Containerized app deployment on local kubernetes cluster
- GCP (Ephemeral) volumes
Hands On/Demo:
- We will learn to Deploy a containerized app image in the locally setup kubernetes cluster
- List all local deployments
- Create a kubectl proxy for forwarding communication to cluster-wide private
- network
- Curl to verify that the app is running
- List all the existing pods Get description of a specific pod
- We can View logs of the container Execute commands directly on the container
- Create a ephemeral volume in GCP. Configure Pod to store data in GC Volumes.
Expose, Scale and Update App in Kubernetes
Learning Objectives: In this module, you will learn what a service is, how to expose the deployed app outside the Kubernetes cluster, how to scale up/down the replicas of the app and how to provide updates to the app.
- What is a Service? Labels and Selectors
- Deployment Controller Replica Set
- Replication Controller Scaling out a deployment using replicas
- Horizontal pod autoscaler Load balancing
- Rolling Update Ingress and its types
- Hands On/Demo:
- Create a new service add ha-proxy to configuration file as proxy to expose the application
- Expose the service outside the cluster using ha-proxy
- List all services
- Get more details and information of a particular service and about a label
- Use labels to query required pods
- Create a new label to the pod
- Scale up the above deployment to 4 replicas
- Scale down the above deployment to 2 replicas
- Update the image of the application Check the rollout status
- Rollback an update Delete the service created
Day 3
Managing State with Deployments
Learning Objectives: After this module, you should be able to deploy both stateless applications and stateful applications. You will be able to create a stateful set and a headless service. You will also be able to scale the stateful sets and provide rolling updates.
Topics:
- Stateful set Pod management policies: OrderedReady, Parallel
- Update strategies: OnDelete, Rolling Update
- Headless services
- Persistent Volumes
Hands On/Demo:
- Deploy a stateless application – PHP Guestbook application backed up by Redis:
- Start redis master and slaves, Start the PHP Guestbook, Expose and view the PHP
- Guestbook, Scale up the PHP Guestbook
- Deploy a stateful application – Deploy WordPress site backed up by MySQL database:
- Create PersistentVolume, Create a secret for storing MySQL password, Deploy
- MySQL, Deploy WordPress,
Federations, Auditing and Debugging Kubernetes, Security Best Practices Learning
Objectives: Once participants complete this module, they will be able to use federations in Kubernetes using kubefed. They will also be able to log the events of the Kubernetes cluster and use it to debug nodes and pods. They will get aware of how security can be enforced in the cluster that we create using the best practices.
Topics:
- Federated clusters Debugging by looking at events such as Pending Pods and Unreachable nodes
- Auditing and accessing logs in Kubernetes – Log collectors and audit policy
- Security best practices in Kubernetes
Hands On/Demo:
- Install kubefed Deploying a federation control plane
- Add a cluster to the federation Remove a cluster from the federation
- Labelling a federated cluster Cleanup federation control plane
- Logging and accessing logs in Kubernetes
- Monitoring tools(third Party)