open service broker apiとkubernetes service catalog #k8sjp

59
Open Service Broker API Kubernetes Service Catalog 2017-03-08 Kubernetes Meetup Tokyo #10 Toshiaki Maki (@making)

Upload: toshiaki-maki

Post on 17-Mar-2018

1.573 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Open Service Broker APIとKubernetes Service Catalog #k8sjp

1

Open Service Broker APIKubernetes Service Catalog

2017-03-08 Kubernetes Meetup Tokyo #10 Toshiaki Maki (@making)

Page 2: Open Service Broker APIとKubernetes Service Catalog #k8sjp

Who am I ?

2

Toshiaki Maki (@making) https://blog.ik.am Sr. Solutions Architect @Pivotal Japan Spring / Cloud Foundry / Concourse / Kubernetes

Page 3: Open Service Broker APIとKubernetes Service Catalog #k8sjp

Agenda

3

• Open Service Broker API • Kubernetes Service Catalog

• Demo1 • Demo2

• Ecosystem

Page 4: Open Service Broker APIとKubernetes Service Catalog #k8sjp

Open Service Broker API

Page 5: Open Service Broker APIとKubernetes Service Catalog #k8sjp

5

Page 6: Open Service Broker APIとKubernetes Service Catalog #k8sjp

5

Where:

Who:

What:

in Kubernetes Outside of k8s Managed Service

Developer

VM

Operator

Container Database/Schema

API

Page 7: Open Service Broker APIとKubernetes Service Catalog #k8sjp

6

Developer DBA

Page 8: Open Service Broker APIとKubernetes Service Catalog #k8sjp

6

Developer DBA

Page 9: Open Service Broker APIとKubernetes Service Catalog #k8sjp

6

Developer DBA

Page 10: Open Service Broker APIとKubernetes Service Catalog #k8sjp

6

Developer DBA

Page 11: Open Service Broker APIとKubernetes Service Catalog #k8sjp

6

Developer DBA

(... N )

Page 12: Open Service Broker APIとKubernetes Service Catalog #k8sjp

6

Developer DBA

Page 13: Open Service Broker APIとKubernetes Service Catalog #k8sjp

6

Developer DBA

Page 14: Open Service Broker APIとKubernetes Service Catalog #k8sjp

6

Developer DBA

Page 15: Open Service Broker APIとKubernetes Service Catalog #k8sjp

6

Developer DBA

(... N )

Page 16: Open Service Broker APIとKubernetes Service Catalog #k8sjp

6

Developer DBA

(... N )

Page 17: Open Service Broker APIとKubernetes Service Catalog #k8sjp

6

Developer DBA

(... N )

Excel

Y^Y^Y^Y^Y^Y^Y

Page 18: Open Service Broker APIとKubernetes Service Catalog #k8sjp

7

Developer DBA

Page 19: Open Service Broker APIとKubernetes Service Catalog #k8sjp

7

Developer DBA

Ser

vice

Bro

ker

Page 20: Open Service Broker APIとKubernetes Service Catalog #k8sjp

Service Broker

8

Developer DBA

Ser

vice

Bro

ker

Page 21: Open Service Broker APIとKubernetes Service Catalog #k8sjp

Service Broker

8

Developer

Ser

vice

Bro

ker

Page 22: Open Service Broker APIとKubernetes Service Catalog #k8sjp

Service Broker

9

Developer

Ser

vice

Bro

ker Service Instance

Service Binding

Page 23: Open Service Broker APIとKubernetes Service Catalog #k8sjp

Service Broker in Cloud Foundry

10

Ser

vice

Bro

ker

Clo

ud C

ontro

ller

Create a VM or Create a Database

Create a user

Provision a service instance

Bind a service binding

cf create-service

cf bind-service

Page 24: Open Service Broker APIとKubernetes Service Catalog #k8sjp

Marketplace

11

Page 25: Open Service Broker APIとKubernetes Service Catalog #k8sjp

Service Broker in Cloud Foundry

12

Ser

vice

Bro

ker

Clo

ud C

ontro

ller

Create a VM or Create a Database

Create a user

Provision a service instance

Bind a service binding

cf create-service

cf bind-service

Page 26: Open Service Broker APIとKubernetes Service Catalog #k8sjp

Service Broker in Cloud Foundry

12

Ser

vice

Bro

ker

Clo

ud C

ontro

ller

Create a VM or Create a Database

Create a user

Provision a service instance

Bind a service binding

cf create-service

cf bind-service

Page 27: Open Service Broker APIとKubernetes Service Catalog #k8sjp

Service Broker in Cloud Foundry

12

Ser

vice

Bro

ker

Clo

ud C

ontro

ller

Create a VM or Create a Database

Create a user

Provision a service instance

Bind a service binding

cf create-service

cf bind-service

Open Service Broker API

Page 28: Open Service Broker APIとKubernetes Service Catalog #k8sjp

Open Service Broker API

13

https://www.openservicebrokerapi.org/

Cloud Foundry Service Broker Kubernetes OpenShift

Page 29: Open Service Broker APIとKubernetes Service Catalog #k8sjp

API 7

14

https://github.com/openservicebrokerapi/servicebroker/blob/v2.13/spec.md

🔸Catalog

🔸Service Instance

🔸Service Binding

DELETE /v2/service_instance/{instanceId}/service_bindings/{bindingId}

PUT /v2/service_instance/{instanceId}/service_bindings/{bindingId}

DELETE /v2/service_instance/{instanceId}PUT /v2/service_instance/{instanceId}

GET /v2/catalog

Page 30: Open Service Broker APIとKubernetes Service Catalog #k8sjp

API 7

14

https://github.com/openservicebrokerapi/servicebroker/blob/v2.13/spec.md

🔸Catalog

🔸Service Instance

🔸Service Binding

DELETE /v2/service_instance/{instanceId}/service_bindings/{bindingId}

PUT /v2/service_instance/{instanceId}/service_bindings/{bindingId}

DELETE /v2/service_instance/{instanceId}PUT /v2/service_instance/{instanceId}

GET /v2/catalog InstanceId BindingId OSB

Page 31: Open Service Broker APIとKubernetes Service Catalog #k8sjp

Kubernetes Service Catalog

Page 32: Open Service Broker APIとKubernetes Service Catalog #k8sjp

Service Broker in Kubernetes

16

Ser

vice

Bro

ker

Create a VM or Create a Database

Create a user

Provision a service instance

Bind a service binding

AP

I Ser

ver

Page 33: Open Service Broker APIとKubernetes Service Catalog #k8sjp

Service Broker in Kubernetes

16

Ser

vice

Bro

ker

Create a VM or Create a Database

Create a user

Provision a service instance

Bind a service binding

AP

I Ser

ver

🤔

Page 34: Open Service Broker APIとKubernetes Service Catalog #k8sjp

Service Broker in Kubernetes

16

Ser

vice

Bro

ker

Create a VM or Create a Database

Create a user

Provision a service instance

Bind a service binding

AP

I Ser

ver

🤔S

ervi

ce C

atal

og

Page 35: Open Service Broker APIとKubernetes Service Catalog #k8sjp

Service Catalog

17

https://github.com/kubernetes-incubator/service-catalog

Open Service Broker API Kubernetes Service Catalog SIG

Page 36: Open Service Broker APIとKubernetes Service Catalog #k8sjp

New Resources in Service Catalog

18

• ClusterServiceBroker • ClusterServiceClass • ClusterServicePlan • ServiceInstance • ServiceBinding

Page 37: Open Service Broker APIとKubernetes Service Catalog #k8sjp

New Resources in Service Catalog

18

• ClusterServiceBroker • ClusterServiceClass • ClusterServicePlan • ServiceInstance • ServiceBinding

k8s Admin

Service Catalog

Developer

Page 38: Open Service Broker APIとKubernetes Service Catalog #k8sjp

Service Catalog Workflow

19

Ser

vice

Bro

ker

Ser

vice

Cat

alog

Create a VM or Create a Database

Create a user

Provision a service instance

Bind a service binding

kubectl apply -f service-instance.yml

kubectl apply -f service-binding.yml

Service Instance

Service Binding

k8s Resource

🔑 Secret

Page 39: Open Service Broker APIとKubernetes Service Catalog #k8sjp

Service Catalog Workflow

19

Ser

vice

Bro

ker

Ser

vice

Cat

alog

Create a VM or Create a Database

Create a user

Provision a service instance

Bind a service binding

kubectl apply -f service-instance.yml

kubectl apply -f service-binding.yml

Service Instance

Service Binding

k8s Resource

🔑 Secret

Service Binding Credentials Secret

Page 40: Open Service Broker APIとKubernetes Service Catalog #k8sjp

How to install service catalog

20

helm repo add svc-cat \ https://svc-catalog-charts.storage.googleapis.com

helm install svc-cat/catalog \--name catalog \--namespace catalog \--set insecure=true

Page 41: Open Service Broker APIとKubernetes Service Catalog #k8sjp

How to install service broker

21

apiVersion: servicecatalog.k8s.io/v1beta1kind: ClusterServiceBrokermetadata: name: demospec: url: https://my-service-broker.example.com authInfo: basic: secretRef: name: demo-broker-secret namespace: osb

Page 42: Open Service Broker APIとKubernetes Service Catalog #k8sjp

How to install service broker

21

apiVersion: servicecatalog.k8s.io/v1beta1kind: ClusterServiceBrokermetadata: name: demospec: url: https://my-service-broker.example.com authInfo: basic: secretRef: name: demo-broker-secret namespace: osb

apiVersion: v1kind: Secretmetadata: name: demo-broker-secret namespace: osbtype: Opaquedata: username: dXNlcm5hbWU= password: cGFzc3dvcmQ=

Page 43: Open Service Broker APIとKubernetes Service Catalog #k8sjp

How to install service broker

21

apiVersion: servicecatalog.k8s.io/v1beta1kind: ClusterServiceBrokermetadata: name: demospec: url: https://my-service-broker.example.com authInfo: basic: secretRef: name: demo-broker-secret namespace: osb

apiVersion: v1kind: Secretmetadata: name: demo-broker-secret namespace: osbtype: Opaquedata: username: dXNlcm5hbWU= password: cGFzc3dvcmQ=

Service BrokerBasic

Page 44: Open Service Broker APIとKubernetes Service Catalog #k8sjp

List cluster service classes

22

$ kubectl get clusterserviceclasses -o=custom-columns=CLASS:.spec.externalName,DESCRIPTION:.spec.description

CLASS DESCRIPTIONshared-mysql Shared MySQL

Page 45: Open Service Broker APIとKubernetes Service Catalog #k8sjp

List cluster service plans

23

$ kubectl get clusterserviceplans -o=custom-columns=CLASS:.spec.clusterServiceBrokerName,PLAN:.spec.externalName,DESCRIPTION:.spec.description

CLASS PLAN DESCRIPTIONshared-mysql shared Shared

Page 46: Open Service Broker APIとKubernetes Service Catalog #k8sjp

How to create service instance

24

apiVersion: servicecatalog.k8s.io/v1beta1kind: ServiceInstancemetadata: name: hellospec: clusterServiceClassExternalName: shared-mysql clusterServicePlanExternalName: shared

Page 47: Open Service Broker APIとKubernetes Service Catalog #k8sjp

How to create service instance

24

apiVersion: servicecatalog.k8s.io/v1beta1kind: ServiceInstancemetadata: name: hellospec: clusterServiceClassExternalName: shared-mysql clusterServicePlanExternalName: shared

Service

Plan

Page 48: Open Service Broker APIとKubernetes Service Catalog #k8sjp

How to create service binding

25

apiVersion: servicecatalog.k8s.io/v1beta1kind: ServiceBindingmetadata: name: hello-keyspec: instanceRef: name: hello secretName: hello-key-secret

Page 49: Open Service Broker APIとKubernetes Service Catalog #k8sjp

How to create service binding

25

apiVersion: servicecatalog.k8s.io/v1beta1kind: ServiceBindingmetadata: name: hello-keyspec: instanceRef: name: hello secretName: hello-key-secret

Credentials Secret

Service Instance

Page 50: Open Service Broker APIとKubernetes Service Catalog #k8sjp

Ser

vice

Cat

alog

DEMO1: MySQL Service Broker

26S

ervi

ce B

roke

r

CREATE DATABASE

CREATE USER

Provision a service instance

Bind a service binding

https://github.com/making/shared-mysql-service-broker

Page 51: Open Service Broker APIとKubernetes Service Catalog #k8sjp

Ser

vice

Cat

alog

DEMO2: Kafka Service Broker

27

https://github.com/making/cloud-karafka-service-broker

Ser

vice

Bro

ker

Create a topicProvision a service instance

Bind a service binding Share credentials

Page 52: Open Service Broker APIとKubernetes Service Catalog #k8sjp

Ecosystem

Page 54: Open Service Broker APIとKubernetes Service Catalog #k8sjp

Open Service Brokers

29

• GCP Service Broker • AWS Service Broker • Azure Service Broker • Helm Service Broker • On-demand BOSH Service Broker • Ansible Service Broker • MySQL Service Broker • Kafka Service Broker • Pivotal Container Service (PKS)

k8s cluster provsion

Service Broker

https://pivotal.io/platform/services-marketplace

Page 55: Open Service Broker APIとKubernetes Service Catalog #k8sjp

Open Service Broker

30

• (Go) borkerapihttps://github.com/pivotal-cf/brokerapi

• (Java) Spring Cloud Open Service Brokerhttps://github.com/spring-cloud/spring-cloud-open-service-broker

Page 56: Open Service Broker APIとKubernetes Service Catalog #k8sjp

Tools

31

• eden ... Open Service Broker API CLIhttps://github.com/starkandwayne/eden

• svcat ... Service Catalog CLIhttps://github.com/kubernetes-incubator/service-catalog/tree/master/cmd/svcat

Page 57: Open Service Broker APIとKubernetes Service Catalog #k8sjp

32

• Service BrokerAPI

• Open Service Broker API

• Service Catalog k8s Open Service Broker API

Page 58: Open Service Broker APIとKubernetes Service Catalog #k8sjp

Ecosystem

33

🤝

Thank you for your attention!

Page 59: Open Service Broker APIとKubernetes Service Catalog #k8sjp

We are hiring! :)

34

https://pivotal.io/careers

Thank you for your attention!