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

Kubernetes Operators for App Developers

Josh Wood
January 25, 2019

Kubernetes Operators for App Developers

DevConf.Cz 2019, Brno, Czech Republic

Josh Wood

January 25, 2019
Tweet

More Decks by Josh Wood

Other Decks in Technology

Transcript

  1. Any application on any platform must be installed, configured, managed,

    and upgraded over time. Patching is critical to security Anything that isn’t automated is slowing you down. Operators are automated software managers for Kubernetes clusters: Install and Lifecycle. Why you care about Operators
  2. You find a killer new database, perfect match for your

    project’s requirements You don’t want to become an expert killernewDB DBA Operators make it easier to run foundation services You can use Operators today
  3. Running a database is harder •Resize/Upgrade - coordination for availability

    •Reconfigure - tedious generation / templating •Backup - requires coordination among instances •Healing - restore backups, rejoin db cluster
  4. Application-specific controllers that extend the Kubernetes API to create, configure,

    and manage instances of complex stateful applications on behalf of a Kubernetes user
 1. Extend the Kubernetes API through the Custom Resources (CR(D)) mechanism
 2. Custom controller watches CRs, acts in response What are Operators?
  5. Demo: etcd Operator $ sh create_role.sh # RBAC role and

    rights $ kubectl create -f deployment.yaml # Deploy the etcd Operator $ kubectl create -f etcd-cluster.yaml # Create an etcd cluster $ kubectl {delete,apply,get} # etcd failure recovery, version upgrade, Operator failure recovery $> etcdctl put foo bar # While using etcd API
  6. Databases
 File, block, and object storage
 Applications with their own

    notion of “cluster”
 Apps for distribution on Kubernetes What are Operators good for?
  7. https://github.com/operator-framework/operator-sdk An Operator is a custom Kubernetes controller for your

    app. The SDK makes it easier to build Operators: • High level APIs and abstractions to write operational logic • Scaffolding and code generation to bootstrap new projects • Extensions to cover common Operator use cases Build your Operator
  8. Get persistence faster, cheaper Reliability automated down the stack Advanced:

    Make your app a Kubernetes Native What are Operators good for?
  9. Resources • https://coreos.com/operators
 • Learn.OpenShift.com: 
 https://learn.openshift.com/operatorframework/ • Etcd Operator

    examples from this talk: Recovery, backup, upgrade:
 https://github.com/coreos/etcd-operator/ • Awesome Operators!
 https://github.com/operator-framework/awesome-operators
 • Operator Framework and SDK on Github
 https://github.com/operator-framework/
 • Introducing the Operator Framework
 https://coreos.com/blog/introducing-operator-framework