open service broker apiとkubernetes service catalog #k8sjp

Post on 17-Mar-2018

1.574 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1

Open Service Broker APIKubernetes Service Catalog

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

Who am I ?

2

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

Agenda

3

• Open Service Broker API • Kubernetes Service Catalog

• Demo1 • Demo2

• Ecosystem

Open Service Broker API

5

5

Where:

Who:

What:

in Kubernetes Outside of k8s Managed Service

Developer

VM

Operator

Container Database/Schema

API

6

Developer DBA

6

Developer DBA

6

Developer DBA

6

Developer DBA

6

Developer DBA

(... N )

6

Developer DBA

6

Developer DBA

6

Developer DBA

6

Developer DBA

(... N )

6

Developer DBA

(... N )

6

Developer DBA

(... N )

Excel

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

7

Developer DBA

7

Developer DBA

Ser

vice

Bro

ker

Service Broker

8

Developer DBA

Ser

vice

Bro

ker

Service Broker

8

Developer

Ser

vice

Bro

ker

Service Broker

9

Developer

Ser

vice

Bro

ker Service Instance

Service Binding

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

Marketplace

11

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

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

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

Open Service Broker API

13

https://www.openservicebrokerapi.org/

Cloud Foundry Service Broker Kubernetes OpenShift

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

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

Kubernetes Service Catalog

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

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

🤔

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

Service Catalog

17

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

Open Service Broker API Kubernetes Service Catalog SIG

New Resources in Service Catalog

18

• ClusterServiceBroker • ClusterServiceClass • ClusterServicePlan • ServiceInstance • ServiceBinding

New Resources in Service Catalog

18

• ClusterServiceBroker • ClusterServiceClass • ClusterServicePlan • ServiceInstance • ServiceBinding

k8s Admin

Service Catalog

Developer

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 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

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

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

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=

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

List cluster service classes

22

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

CLASS DESCRIPTIONshared-mysql Shared MySQL

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

How to create service instance

24

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

How to create service instance

24

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

Service

Plan

How to create service binding

25

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

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

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

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

Ecosystem

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

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

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

32

• Service BrokerAPI

• Open Service Broker API

• Service Catalog k8s Open Service Broker API

Ecosystem

33

🤝

Thank you for your attention!

We are hiring! :)

34

https://pivotal.io/careers

Thank you for your attention!

top related