Categories

There are currently no items in your shopping cart.

User Panel

Forgot your password?.

Kubernetes Certified Administrator by School of Devops


About the Course :
Lab Guide
Gitter Chat Room for the Course

Introduction to Kubernetes :
The need for a Container Orchestration Engine
Battles of COEs, which one to choose
Key Features of a COE
What makes Kubernetes the de facto COE choice
Negatives of using Kubernetes
Basics of Kubernetes
9 questions
Exercise

Path to Automation with Kubernetes :
Section Intro - Path to Automation with Kubernetes
Namespaces
Pods
Replication Controller, Replica Sets and Deployments
Service Discovery and Load Balancing
Applying kubernetes primitives to your Application Stack
Configmaps and , Storage, Network, RBAC etc.
Daemonsets, Statefulsets, Crons and Jobs
Kubernetes Architecture Run Down
Building production grade Hight Available Kubernetes Cluster
Path to Automation with Kubernetes
11 questions
Exercise

Just Enough Docker for a Kubernetes Practitioner :
Who is this section for ?
Setting up and validating docker environment
Running your first container
Making containers persist with -idt options
Essential Container Operations - list, logs, exec, cp, inspect, stop, rm
Publishing containers using port mapping
Using docker instead of VMs to create development environments
Portainer - Web console to managing Docker Environemnts
Launching Application Stack with Docker Compose
Building an image manually with docker commit
Automatiing image builds with a Dockerfile
Dockerfile Primer

Setting up a Kubernetes environment :
Section Intro- Setting up Environment
LAB: Option 1: Setting up single node kubernetes with Minikube
LAB: Option 2: Provisioning 3 nodes for Kubernetes with Vagrant and VirtualBox
Provisioning and configuring Digital Ocean Nodes
Initialise Cluster with Kubeadm
Setting up Weave CNI
Launching Kubernetes Dashboard
LAB: Setup Kubernetes Cluster with Kubeadm
Setting up a kubernetes Visualizer
LAB: Setting up Kubernetes Visualiser
Troubleshooting : Resetting cluster created with kubeadm
Setting up Environment
10 questions
Exercise

Building Blocks - Pods :
Section Intro - Pods
Writing pod Specification
Launching and Operating Pods
LAB: Writing Pod Spec, Launching and Operating a Pod
Troubleshooting Pods Issues
LAB: Troubleshooting Pod Issues
Attaching a volume to a Pod
LAB: Attaching a volume to the Pod
Launching Multi-Container Pods
Connecting to Individual Containers
LAB : Multi Container Pods
Building Blocks - Pods
11 questions
Exercise

Replication Controllers and Replica Sets :
Section Intro - Replication Controllers
Setting up namespace and switching context
LAB: Creating a Namespace and switching to it
Writing Replica Set Specification
LAB: Writing Replica Set Specs
Launching Replica Set and Fault Tolerance
LAB: ReplicaSet in Action
Replication Controllers and Replica Sets
10 questions
Exercises

Service Discovery and Load Balancing :
Section intro - Services
Writing Service Specification
Exposing services outside the Cluster
LAB: Creating a Service and exposing it with NodePort
LAB: Exposing Sevice with ExternalIPs
Service Discovery
LAB: Intetnal Service Discovery with ClusterIP
Service Discovery and Load Balancing
11 questions
Exercise

Application Deployments and Updates :
Section Intro - Deployments
Writing Deployment Specification
Rolling Out a Deployment
LAB: Create and rollout a Deployment
Update and Rollback
Rollbacks
Lab : Scale, Rollout and Rollback
MINI PROJECT : Deploy instavote app stack with Kubernetes
Solution part I - Deploying a worker App
Solution part II - Deploying DB service
Solutions part III - Results App
Application Deployments and Updates
10 questions
Exercise

Managing Application Configurations with ConfigMaps and Secrets :
Section intro - Coonfigmaps and Secrets
Creating Config Map for Vote app Options
LAB: Injecting env variables with configmaps
Setting up Environment Specific Configs
LAB: Providing environment Specific Configs
Adding Configs from Files
LAB: Configuration file as ConfigMap
Creating Secrets to Encrypt Database Credentials
Setting Environment vars using Secrets
LAB: Using Secrets to encrypt sensitive data
Managing Application Configurations
10 questions
Exercise

Persisting data and dynamic volumes provisioning :
Section Intro- Persistent Volumes
Setting up RBAC for NFS Provisioner
Setting up NFS provisioner with Statefulset
LAB: Setting up NFS using StatefuleSets
Creating storage class for NFS
Claiming a persistent volume and mounting it
Dynamically provisioning of persistent volumes
LAB: Creating and mounting PersistentVolumeClaim
Persistent Volumes
9 questions
Exercise

Creating Release Strategies - Blue/Green, Canary :
Section Intro- Release Strategies
Defining Recreate as a Release Strategy
LAB: Releases with downtime using Recreate Strategy
Canary Releases
LAB: Rolling out a Canary Release
Blue Green Deployments
LAB: Deploying a Blue-Green Release
Pausing and fixing rollouts
LAB: Pause and Resume a Release
Exercise

Dynamically scaling apps with Horizontal Pod Autoscaler :
Section Intro HPA
Setting up code monitoring with Metrics Server
LAB: Deploy Metrics Server for feeding in core metrics to HPA
Defining Resource Requests and Limits
LAB: Defining Resource Requests and Limits
Creating a Horizontal Pod Autoscaler
LAB: Create a HorizontalPodAutoscaler
Writing load test Job definition
Laying a siege with loadtest jobs
Autoscaling in action with HPA
LAB: Running load test as a kubernetes Job
Exercise

Application routing with Ingress Controllers :
Section Intro Ingress
Ingress Controllers and Ingress
Choosing Traefik as a ingress controller and DaemonSet as a deployment type
Creating DaemonSet for Traefik
LAB: Create a Ingress Controller
Writing Ingress definition for vote app with named based routing
Testing ingress and accessing the application
LAB: Adding Named Based Routing
Annotations and setting up basic auth for vote app
LAB: Using Annotations to enable HTTP Auth
Exercise

Setting up firewall with Network Policies :
Creating default network policy for instavote namespace
Exposing public facing apps and allowing inter namespace communication
LAB: Creating firewall with Network Policies

High Available Production Cluster setup with Kubespray :
From dev to production with High Available kubernetes Cluster
Introduction to Kubespray
HA Design
Preparing Nodes to setup Kubernetes
Ansible control node and inventory setup
Running ansible kubespray playbooks to configure etcd, master and nodes
Adding a new node to cluster with kubespray
Enabling additional kubernetes features with with Kubespray
Understanding HA setup, mapping services to nodes
Kubernetes configurations quick dive
Configuring kubectl locally to conenct with multiple clusters
Deploying instavote app on prod cluster
Accessing kubernetes dashboard

Access Control and RBAC Policies - Authenticaion and Authorization :
Access Control with Kubernetes
RBAC Concepts
Defining Users, Groups and Authorizations
Creating Users and Groups using x509 Certificates
LAB: Creating users and groups using x509 certificates
Setting credentials and contexts
Creating Roles and RoleBindings for interns
Binding to existing ClusterRole using ClusterRoleBinding for Ops
LAB: Defining authorisation rules with Roles and ClusterRoles
Exercise

Advanced Pod Scheduling :
Using nodeName to bind a pod to a node
Selecting node based on labels with nodeSelector
LAB: Using NodeSelector
Selecting nodes with nodeAffinity
LAB: Defining Node Affinity
Using podAffinity and podAntiAffinity to ensure co locating applications
LAB: Defining affinity between applications with PodAffinity
Using taints and tolerations to make nodes unschdulable or run only specific app
LAB: Using Taints and Tolerations
Exercise

Using HELM Charts and Tiller to auto deploy application Stacks :
Introduction to HELM
Setting up helm with tiller and launching prometheus
Quick overview of helm Charts
Launching wordpress with custom values
Setting up prometheus with custom storageclass and ingress rules
Deploying grafana and integrating it with prometheus
LAB 1: Helm Package Manager
LAB 2: Install Wordpress with Helm
LAB 3: Install Prometheus with Helm
Exercise

Just enough Istio :
Deploying Istio Cluster with Google Kubernetes Engine
Setting up Google Cloud SDK
Examine
Validating Istio Telemetry Plugin
Overview of Bookinfo app
Deploying canary releases with intelligent routing
Testing application resiliency by injecting a fault
Zero downtime deployments with weight based routing
Traffic Routing and Deployment - Kubernetes vs Istio
Cleaning Up