Enter your keyword

Course

Kubernetes for complete beginners

AIM​:

This course is designed for beginners who want to learn and master their skills to work efficiently with Kubernetes (k8s). K8s is the most popular and fastest growing container orchestration platform. As Kubernetes is extensible and fault tolerant, various organizations are adopting Kubernetes as their native container platform to host business critical applications. Top cloud providers such as Amazon, Google and Microsoft are providing k8s platforms for easy adoption. Kubernetes is a perfect choice to host modern micro services-based applications.

At the end of this course delegates will gain hands-on experience working on Kubernetes and Docker to build and deploy real world applications. More than 80% of the learning is based on interactive sessions. Students will be learning while performing scenario based practical labs and home work to gain valuable experience. In short, this course is for those who want to get their hands dirty with Kubernetes and Docker.

Prerequisites:

  1. Delegates must be fluent and efficient dealing with command line interface.
  2. Minimum 6 – 12 months of
  3. Software development experience in any programming language OR
  4. Working knowledge of Linux systems administration OR
  5. Working knowledge of Network Administration OR
  6. Software testing experience.

Note: All labs and scenario-based exercises will be performed through CLI.

YAML:

What is YAML?

Why YAML? (. yaml and. yml)

Preparing sample YAML files to understand data structure.

All Kubernetes object definitions are written in YAML.

Monolithic vs micro service Application overview.

What is Kubernetes?

High level Architectural diagram of Kubernetes.

Cluster: Master (Control Pane) vs Worker nodes.

Importance of cluster components.

– Control plane components.

– Node components.

Getting started with kubectl command line utility.

Query different Kubernetes Objects Using Imperative Commands

kubectl get, kubectl cluster-info, kubectl config, kubectl describe, kubectl run …etc.

Query Kubernetes objects and different properties with JSONPath

Namespaces:

What is namespace

When to use different namespaces

Create a new namespace

Switch between namespaces

Labels and Selectors:

What are labels and selectors?

Importance of Labels and selectors.

Syntax and Character set.

List, watch and filter Kubernetes objects.

Pod:

What is a pod?

Single container pod

Multi container pod

Pod template (Configuration)

Prepare a custom pod configuration from scratch.

Prepare a pod using imperative command with –dry-run

Export / build pod configuration using imperative command.

Understanding pod lifecycle.

Watching logs for debugging and analysis.

 

Pod – Internals

–   ​What is a container?

– Why Docker Containerization?

– Learn basic Docker operations.

– Create a nginx pod with imperative command.

– Update index.html with ​kubectl exec.

– Perform ​docker exec​ and ​kubectl exec​ to validate content of a file.

– Export pod configuration from Running pod.

Deployments:

What is a Deployment?

Deployment template (Configuration)

Prepare a custom deployment using imperative command and different options.

Create a deployment.

Update a deployment.

Scaling a deployment.

Rolling update on a deployment.

Rollback a deployment.

Rollback to a specific revision.

Check history and status of deployment.

Recreate deployment. (rolling update vs recreate)

Pausing and Resuming deployment.

ReplicaSet

What is a ReplicaSet?

When to use a Replicaset?

Scaling a replicaset.

Replicaset as a Horizontal pod autoscaler.

Service:

What is a service?

Service template (configuration)

Service types – NodePort, ClusterIP, Loadbalancer, Externalname

Creating service while creating pod (imperative).

Create an individual service config.

Access application running on pod with a service.

Network Policies:

What is a network policy?

Understand Ingress and Egress for pods.

Isolated and Non-isolated pods.

Create a network policy and apply to pod.

Validate pod access based on network policy.

Securing pod access with default network policy in namespace.

Behaviour of to and from selectors.

Different network providers and network policy support.

ConfigMap:

Create config map from literals.

Create config map from files.

Configure pod to retrieve configuration / parameters from config maps.

Configure pod to retrieve configuration from environment variables.

Configmap data from volume.

Volumes:

Concept of volumes in Docker and Kubernetes

Types of volumes

Persistent Volumes

Persistent Volume Claim

Storage Classes

Job and CronJob​:

Ad-hoc job – run to complete a task

Job template (Configuration)

Prepare a sample job with imperative command.

Parallel executions.

Termination and cleanup finished jobs.

Handling pod and container failure.

CronJob limitations.

 

Secrets​:

Overview of secrets.

Create a secret.

Retrieve a secret.

Configure pod to retrieve secret value.

Daemon Set:

Prepare Daemon Set template configuration.

Scheduled by default scheduler.

Based on Taints and Toleration.

Node Affinity.

Resource Quota:

Enabling resource quota

Compute resource quota (CPU and Memory)

Storage resource quota.

Note: If delegates need more practice on Docker then we will set up a session just on Docker.

Docker:

Virtual machines vs Containers.

Install Docker CE on virtual machine (Optional)

Learn basic Docker operations

Build container from default images

Create docker image from running container

Write ​DockerFile​ to build container image

Execute various command using ​docker exec

Build a custom web server image using nginx

Setup a free external docker repository at hub.docker.com

Who’s is using Kubernetes: ​https://kubernetes.io/case-studies/

Share our course