K8S.INSTITUTE Learn and Master Kubernetes

Discover our courses

Kubernetes for 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 organisations 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:

- Software development experience in any programming language OR
- Working knowledge of Linux systems administration OR
- Working knowledge of Network Administration OR
- Software testing experience. OR
- Degree or Diploma in computer or any relevant field.

Note:

- All labs and scenario based exercises will be performed through CLI.
- Every delegate will need to bring their own laptop.

Syllabus:

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.

Deployments:

- What is a Deployment?
- 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.

configMap:

- 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 DaemonSet 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 is using Kubernetes