Next Session: This course is paused until further notice.
About the course
The course is hands on. From the first session onwards you will be working with kubernetes, typing the commands and exploring the most important aspects of cluster management.
By the end of the course, you will be able to deploy any web application to a kubernetes cluster. You will also be able to speak on best practices for naming, labeling, namespacing and other hygiene aspects of kubernetes clusters.
Topics Covered
- Before Kubernetes
- Docker Primer
- Kubernetes Architecture
- A Kubernetes Cluster on your laptop – Minikube, Kind
- Deploy a web application to a Kube cluster
- Pods
- Replicasets
- Deployments
- Resource Management and Debugging commands
- Kubectl commands
- Namespace and labels
About the Instructor
For the past 3 years I have been working on systems built on Kubernetes. While it has its own pain points, the savings over standalone VMs and its flexibility to scale make it ideal for mid-size startups. For smaller startups the problem would be maintenance as it has a bit of a learning curve.
I moved all web-apps in my first team in gojek completely to kubernetes, saving almost 30% of infrastructure costs. Gojek is now working to do this for all application services for all product groups.
I later worked as the Tech Lead for Thailand and Viertnam teams in Gojek. These countries have complete replicas of the gojek core system, running in huge kubernetes clusters. Thats 230 odd services in a single cluster with database and other stateful components in separate clusters. It was managed by a team of only 10 engineers!
This course is my way of giving back to the community by sharing what we learned so that more people can gain the benefits of Kubernetes.
Pre-requisites
- Laptop with ubuntu or MacOS (we could try with a windows laptop but it will be trial and error).
- Be able to write a simple web server in any one language. If you can do it by googling, thats fine as well.
- Docker should be installed
- Minikube should be installed
- Kind should be installed
- Install Golang with version greater than 1.11