facebook-Banner-16-18.1.18

K8S COURSE Basics & Advanced Kubernetes


A 3day, deep dive course on Kubernetes.

ABOUT THIS COURSE
This course is meant to introduce Kubernetes to a mixed audience conducted of DevOps, Dev and IT Teams leaning more to the Dev/DevOps.

HANDS ON IN THE COURSE
Every ‘Hands On’ item in the content means the student will exercise the recent topics discussed over their own deployed MiniKube Kubernetes cluster.
Hands-on labs’ paper with instructions for each lab will be delivered separately.

Want to participate? Leave us your details below and we will get back to you with a quote.
(This is a paid course)

TABLE OF CONTENTS

1. DOCKER IN SHORT
1.1 Linux Containers
1.2 Docker images & Dockerfile
1.3 Docker compose
1.4 Need for orchestration

2. INTRODUCTION & BASICS RESOURCES
2.1 Introduction – Kubernetes origins
2.2 Architecture & Components
2.2 Cluster management – the kubectl cli & API structure
2.3 K8S common Objects – from Pod to DaemonSet
2.4 Configuration injection – ConfigMaps & Secrets
2.5 Side cars and multi-container pods
Hands-On 1: Deploying HostId app on your cluster

3. ACCESSING SERVICES
3.1 K8S Services & Services types
Hands-On 2: expose the HostId app
3.2 Ingress & Ingress controllers (IC)
3.3 Service discovery in Kubernetes
Hands-On 3: create ingress & IC and access the HostId app

4. KUBERNETES NETWORKING
5.1 Network models
5.2 Network plugins
5.3 Network options
5.4 Overlay networking

6. PERSISTENCY & STATEFULLSETS
6.3 Kubernetes Volumes
6.4 PersistentVolumes / PV Claims
6.4 StatefulSets
Hand-On 4: Heapster/Grafana & auto-scaling

7. RESOURCE MANAGEMENT
7.1 Setting resources requests and limits
7.2 Resource quotas
7.3 Keys for a stable cluster
7.4 Monitoring, Heapster, Prometheus
7.5 Scaling with KOPS on AWS and on
7.6 Auto-scaling
Hand-On 5: Heapster/Grafana & auto-scaling

8. POD SCHEDULING
8.1 The kube-scheduler
8.2 Affinities / Anti-affinities
8.3 Node selectors, Tains & tolerations
Hand-On 6: Scheduling with resources settings & affinities
9. CLUSTER DEPLOYMENTS
9.1 Deployment flavors
9.2 Cloud providers integrations
9.3 K8s infrastructure challenge & commercial distributions

10. CLUSTER UPGRADES
10.1 Rollout upgrading of a cluster
10.2 Node drainings
10.3 Upgrading with KOPS on AWS
10.4 Upgrading with ARM on Azure

11. DEPLOYMENT STRATEGIES
11.1 Rolling updates and revisions
11.2 A/B Testing, BlueGreen & Canary deployments
Hand-On 7: Rolling-update, revisions & rollbacks
12. FEDERATION SERVICES
12.1 introduction to Ubernetes
12.2 Architecture
12.2 Federated resources
12.3 The hybrid cloud point of view
Demo: Global federated service on GCP
13. SERVICE MESH
13.1 What is a service mesh
13.2 Introduction to LinkerD (Finagle) & Istio (Envoy)
13.2 Use cases

PREREQUISITS:

Each student is required to have the following pre-installed:
1. Kubectl + Minikube from https://kubernetes.io/docs/tasks/tools/install-minikube At the time of writing this agenda the Minikube version required is v0.20.0 Make sure you MiniKube cluster is running by running kubectl get node and get an output of your single cluster node.
2. Git client from https://git-scm.com/downloads
3. Clone git repo from https://bitbucket.org/yshenbaum/k8s-course.git