Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Custom Resources for Cloud Native DevOps

Jelmer Snoeck
September 26, 2018

Custom Resources for Cloud Native DevOps

In this talk Jelmer will share with you what Kubernetes' Custom Resources exactly are and how they can help reduce YAML boilerplate. You'll learn how to create an Operator from scratch which you can use to automate DevOps tasks in a CloudNative manner.

Jelmer Snoeck

September 26, 2018
Tweet

More Decks by Jelmer Snoeck

Other Decks in Technology

Transcript

  1. FIND ME github.com/jelmersnoeck twitter.com/jelmersnoeck Jelmer Snoeck ABOUT ME - OX

    Tech Lead at manifold.co - Kubernetes - Terraform - Kubelist Editor
  2. $ tree custom-resources-cloud-native-devops/ - What are Custom Resources - How

    to build Custom Resources - Publishing Custom Resources
  3. A custom resource is an extension of the Kubernetes API

    that is not necessarily available on every Kubernetes cluster. In other words, it represents a customization of a particular Kubernetes installation.
  4. The CustomResourceDefinition API resource allows you to define custom resources.

    Defining a CRD object creates a new custom resource with a name and schema that you specify. The Kubernetes API serves and handles the storage of your custom resource.
  5. Controller <> Operator - Controller purely interacts with k8s objects

    (even custom ones) - Operator knows about a different domain outside of k8s (etcd, prometheus, …)
  6. Built in queue features • Fair: items processed in the

    order in which they are added. • Stingy: a single item will not be processed multiple times concurrently, and if an item is added multiple times before it can be processed, it will only be processed once. • Multiple consumers and producers. In particular, it is allowed for an item to be reenqueued while it is being processed. • Shutdown notifications.