O'Reilly logo
live online training icon Live Online training

Introduction to Kubernetes

Managing distributed applications

Topic: System Administration
Sébastien Goasguen

If your company is about to embrace containers and develop microservices-type applications, this course will get you started. You’ll get a hands-on tour of Kubernetes core concepts covering installation, configuration, and the API resources to use for your containerized applications. You’ll learn how you can use Kubernetes primitives to build a distributed application that can scale and make efficient use of containers.

As the course comes to a close, you’ll have a clear understanding of how to take your container images to production, build a complex distributed application, and manage it in your data-center. In short, you’ll be well positioned to usher your company into the world of containers.

What you'll learn-and how you can apply it

By the end of this live, hands-on, online course, you’ll understand:

  • The Kubernetes cluster architecture
  • Basics of Kubernetes installation
  • The API resources and endpoints
  • How to interact with a Kubernetes cluster using kubectl
  • How to use the Kubernetes primitives to build a scalable containerized application

And you’ll be able to:

  • Interact with a Kubernetes cluster using the API and the kubectl CLI
  • Build distributed applications using the core API resources
  • Explore all the Kubernetes primitives and understand how they will integrate with their enterprise workflow and processes.
  • Perform rolling-updates and rollbacks of your applications
  • Expose your applications using Kubernetes services
  • Monitor your cluster using Prometheus

This training course is for you because...

  • You’re an application developer and want to understand how to prepare your containerized application for Kubernetes.
  • You’re an application developer who is building Docker images and want to learn how to use those images in Kubernetes.
  • You’re an application developer and want to understand the Kubernetes core API objects to configure your application
  • You’re a system administrator and want to understand how to manage containerized applications in a cluster.
  • You’re a system administrator and want to run system daemons in your cluster like the same way you manage end-user application.
  • You’re a system administrator and want to understand how to monitor and collect logs in a Kubernetes cluster.


  • Install minikube
  • Install kubectl
  • Create a deployment with kubectl run ghost --image=ghost
  • Scale that deployment, check the Pods
  • Check kubectl --help what can you do ?

Recommended Preparation:

CLI for Noobies: A Primer on the Linux Command Line

About your instructor

  • Sebastien Goasguen is a twenty year open source veteran. A member of the Apache Software Foundation, he worked on Apache CloudStack and Libcloud for several years before diving into the container world. He is the founder of Skippbox, a Kubernetes startup acquired by Bitnami. An avid blogger he enjoys spreading the word about new cutting edge technologies . Sebastien is the author of the O’Reilly Docker Cookbook and 60 Recipes for Apache CloudStack.


The timeframes are only estimates and may vary according to how the class is progressing


Part I

  • Kubernetes intro (history, lineage, web resources)
  • Minikube (installation, basic usage, relation to other k8s deployment)

Part II

  • Using kubectl (interact with your Kubernetes cluster, introduce basic primitives: pods, deployments, replica set, services)
  • API resources and specification (json/yaml manifests)

Part III

  • Labels (the why and how about labels)
  • Services (how to expose applications to internet, service types, DNS)


Part I

  • Scaling, rolling updates and rollbacks
  • Ingress controllers (another way to expose apps using Ingress resources)

Part II

  • Volumes (define volumes in Pods)
  • DaemonSets (for admins who want to run system daemons via k8s)

Part III

  • Third-party resources (and why they're important)
  • Python client (custom controller 101, write a basic controller in Python)