Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Automating Stateful Applications with Kubernetes Operators Jan Kleinert
[email protected]
February 6, 2019
Slide 2
Slide 2 text
@jankleinert 2 Jan Kleinert Developer Advocate, Red Hat twitter/github: @jankleinert Hello!
Slide 3
Slide 3 text
@jankleinert 3 What is Kubernetes?
Slide 4
Slide 4 text
@jankleinert 4 Why should you care about operators?
Slide 5
Slide 5 text
@jankleinert 5 Scaling stateless apps: easy
Slide 6
Slide 6 text
@jankleinert 6 $ kubectl scale deploy/staticweb --replicas=3
Slide 7
Slide 7 text
@jankleinert 7 scale up count=1 desired=3 ReplicaSet
Slide 8
Slide 8 text
@jankleinert 8 start count=3 desired=3 ReplicaSet
Slide 9
Slide 9 text
@jankleinert 9 What about apps that store data?
Slide 10
Slide 10 text
@jankleinert 10 Creating a database is easy
Slide 11
Slide 11 text
@jankleinert 11 $ kubectl run db --image=quay.io/my/db
Slide 12
Slide 12 text
@jankleinert 12 Running a database over time is harder
Slide 13
Slide 13 text
@jankleinert 13 ⏣ Resize/Upgrade ⏣ Reconfigure ⏣ Backup ⏣ Healing
Slide 14
Slide 14 text
@jankleinert 14 Every application on any platform must be installed, configured, managed, and upgraded over time Patching is critical to security
Slide 15
Slide 15 text
@jankleinert 15 Anything not automated is slowing you down
Slide 16
Slide 16 text
@jankleinert 16 If only Kubernetes knew...
Slide 17
Slide 17 text
@jankleinert 17
Slide 18
Slide 18 text
@jankleinert 18
Slide 19
Slide 19 text
@jankleinert 19 Operators are automated software managers that deal with installation and lifecycle of Kubernetes applications
Slide 20
Slide 20 text
@jankleinert 20 1. Application-specific custom controllers 2. Custom resource definitions (CRD) Extending the Kubernetes API
Slide 21
Slide 21 text
@jankleinert 21 Application-Specific Controllers
Slide 22
Slide 22 text
@jankleinert 22 Custom Resource Definition (CRD) kind: ProductionReadyDatabase apiVersion: database.example.com/v1alpha1 metadata: name: my-production-ready-database spec: clusterSize: 3 readReplicas: 2 version: v4.0.1 [...]
Slide 23
Slide 23 text
@jankleinert 23 { }
Slide 24
Slide 24 text
@jankleinert 24 What is etcd? Example: etcd Operator ● distributed key-value store ● primary datastore of Kubernetes ● stores and replicates all Kubernetes cluster state
Slide 25
Slide 25 text
@jankleinert 25 Example: etcd Operator kind: EtcdCluster apiVersion: etcd.database.coreos.com/v1beta2 metadata: name: example-etcd-cluster spec: size: 3 version: "3.1.0"
Slide 26
Slide 26 text
@jankleinert 26 Example: etcd Operator
Slide 27
Slide 27 text
@jankleinert 27
Slide 28
Slide 28 text
@jankleinert 28 https://learn.openshift.com/operatorframework/ (or come by the OpenShift booth #601) Try It! Hands-On Operator Tutorials
Slide 29
Slide 29 text
@jankleinert 29 https://github.com/operator-framework/awesome-operators ● etcd ● Prometheus ● Elasticsearch ● MySQL ● “and many more!” Use Operators Today
Slide 30
Slide 30 text
@jankleinert 30 https://github.com/operator-framework
Slide 31
Slide 31 text
@jankleinert 31
Slide 32
Slide 32 text
@jankleinert 32
Slide 33
Slide 33 text
@jankleinert 33
Slide 34
Slide 34 text
@jankleinert 34 Operator SDK
Slide 35
Slide 35 text
@jankleinert 35 https://github.com/operator-framework https://coreos.com/operators/ https://github.com/operator-framework/awesome-operators https://coreos.com/blog/introducing-operator-framework https://learn.openshift.com/operatorframework/ Resources
Slide 36
Slide 36 text
THANK YOU plus.google.com/+RedHat linkedin.com/company/red-hat youtube.com/user/RedHatVideos facebook.com/redhatinc twitter.com/RedHat
Slide 37
Slide 37 text
Rate today ’s session Session page on oreillysacon.com/ny O’Reilly Events App