Build Systems that Drive Business
June 11–12, 2018: Training
June 12–14, 2018: Tutorials & Conference
San Jose, CA

How we built Contour and what you can learn from our experience

Dave Cheney (Heptio)
3:40pm–4:20pm Thursday, June 14, 2018
Containers
Location: LL21 E/F Level: Intermediate
Secondary topics: Systems Monitoring & Orchestration
Average rating: ***..
(3.50, 4 ratings)

Who is this presentation for?

  • Developers and operators interested in extending Kubernetes

Prerequisite knowledge

  • A basic understanding of Kubernetes concepts and architecture (useful but not required)

What you'll learn

  • Learn how Heptio developed Contour
  • Discover how to extend the capabilities of a Kubernetes cluster and how to build servers that speak the Envoy management server API

Description

In 2017 Heptio launched Contour, a Kubernetes ingress controller built using the Envoy proxy project from Lyft. Contour was the first public project to use the new Envoy gRPC API and also the first public project to use the SNI features of Envoy. Heptio chose Envoy as the data plane for its Ingress controller because Envoy represents the first of a new class of HTTP proxies that have made API configuration a first-class citizen. This made it ideal for integration with a highly dynamic system like Kubernetes.

Using the development of the open source Contour Ingress controller as a case study, David Cheney shares real-world advice on how to extend the capabilities of a Kubernetes cluster, how to build servers that speak the Envoy management server API, the traps involved in the components that make up a management server, the Kubernetes Go client, gRPC, and concurrency issues and explains how Envoy made Heptio’s product a success.

Topics include:

  • Why Heptio chose Envoy as the data plane for its Ingress controller
  • How Contour works as a translator from Kubernetes to Envoy objects
  • Traps, pitfalls, and ambiguities in the Ingress spec
  • Specific patterns developed to reliably watch many different kinds of API resources at the same time
Photo of Dave Cheney

Dave Cheney

Heptio

David Cheney is a software engineer at Heptio. David has been involved with the Go project for more than eight years. He is a regular contributor to the language, focusing on Go on ARM processors. Previously, he ported Go to FreeBSD/ARM and Solaris/AMD64 and is working on a port to Linux/ARM64. David writes frequently about Go on his blog and has spoken locally and internationally. Together with Andrew Gerrand, David runs the Sydney Go user group.