Deploy Kasten K10 on Cisco Intersight Kubernetes Service ...
Open Service Broker APIとKubernetes Service Catalog #k8sjp
-
Upload
toshiaki-maki -
Category
Technology
-
view
1.574 -
download
0
Transcript of 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)
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)
https://pivotal.io/platform/services-marketplace
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!