Build Systems that Drive Business
Sep 30–Oct 1, 2018: Training
Oct 1–3, 2018: Tutorials & Conference
New York, NY

Kubernetes bootcamp: Deploying and scaling microservices (Day 2)

Jerome Petazzoni (Tiny Shell Script LLC)
Location: Murray Hill West (A) Level: Intermediate

Who is this presentation for?

  • You need to interact with Kubernetes clusters but have no prior experience with the tool.

Prerequisite knowledge

  • Familiarity with container principles and at least one container engine (useful but not required)

What you'll learn

  • Learn how to deploy containerized applications to production with Kubernetes

Description

Kubernetes has a reputation for being complex to set up and operate, but that doesn’t have to be the case. Join Jérôme Petazzoni to explore Kubernetes concepts and architecture and learn how to use it to deploy and scale your applications. The content is suitable to all kinds of deployment models, from the cloud (AKS, EKS, GKE, kops, etc.) to on-premises.

Each section features explanations, demos, and exercises. Each participant is given access to a Kubernetes cluster during the training and will get first-hand experience by completing the exercises.

Outline

Kubernetes concepts

  • What’s an orchestrator?
  • From pods to containers
  • The control plane
  • Declarative versus imperative models
  • Kubernetes netwqorking overview
  • The Container Network Interface (CNI)

Running your first containers with Kubernetes

  • Getting familiar with kubectl
  • Creating a deployment, a replica set, and a pod
  • Introduction to labels and selectors

Service discovery and load balancing

  • Exposing a service
  • Service types: ClusterIP, NodePort, and LoadBalancer
  • Headless services
  • Using kube-dns for service discovery

Distributing images

  • The different registries available
  • Self-hosting a container registry on your cluster
  • Using Docker Compose to manage the image lifecycle

Deploying an application from A to Z

  • Starting microservices with kubectl
  • Connecting microservices together
  • Scaling and load balancing
  • Updating the code of a service
  • Mitigating update impact with rolling deploys

Understanding resource YAML definitions

  • Example: Converting a deployment to a daemon set
  • Exporting resource YAML
  • Translating one resource type into another

Labels and selectors deep dive

  • Understanding the different places where they appear
  • Using them to update load balancer configuration
  • Understanding resource templates

Operating a Kubernetes cluster

  • Installation options
  • Accessing application logs
  • The Kubernetes dashboard
  • Security implications

The case of stateful applications

  • What’s a volume, PersistentVolume, and a PersistentVolumeClaim?
  • When to use StatefulSets
  • Deploying resilient stateful applications

Managing increasingly complex apps

  • Capturing resource definitions
  • From kubectl to committed YAML
  • From committed YAML to Helm
  • Other options
  • Using config maps and secrets

When many applications cohabitate

  • Using namespaces
  • Isolating services with network policies
  • Deploying multiple instances of the same app

The ingress resource

  • Using ingress for HTTP traffic
  • Different ingress implementations
  • Advanced traffic engineering

You’ll also cover a few advanced topics (like cluster federation) but without demos and exercises, since they would require much larger clusters.

Photo of Jerome Petazzoni

Jerome Petazzoni

Tiny Shell Script LLC

Jérôme Petazzoni is a DevOps advocate and international speaker. He was born and raised in France, where he worked on geographic information systems, voice over IP, video streaming, and encoding and started a cloud hosting company back when EC2 wasn’t an Amazon product yet. In California he built and scaled the dotCloud PaaS, which eventually gave birth to Docker. While at Docker, he represented the company at hundreds of conferences and events and trained thousands of engineers to use Docker, Swarm, and Kubernetes. He’s fluent in many languages (mostly programming ones), owns a dozen musical instruments, and can play the theme of Zelda on most of them.