元トレーダーが解説

クラウドブローカーとは

クラウドブローカーとは
クラウドアダプタの クラウドブローカーとは MQTT 接続の仕様は以下の通りです。
クラウドアダプタは受け取った MQTT のメッセージをそのまま外部クラウドサービスへ転送します。
各クラウドサービスは独自の制限を設けている場合がありますので、ご利用できる機能の範囲は各クラウドサービスの制限をご確認ください。

Oracle Blogs 日本語のまとめ

Oracle Blogsの主としてテクノロジー製品のエントリを日本語でご紹介します(オリジナルのエントリを投稿することもあります)。厳密性をご所望の方は原文をどうぞ。よい内容でしたら原文に対し、"Good Entry, クラウドブローカーとは thanks!"でもいいので、是非コメントお願いします(Typoや誤訳はコメント欄からどうぞ)。なお、このエントリは個人の見解であり、所属する会社の公式見解ではありません。また、エントリ内でご紹介している製品・サービスは国内導入時期が未定の場合もありますのでご了承下さい。

Good entries on Oracle Blogs are クラウドブローカーとは put into Japanese. Mainly this blog covers technology products. Opinions expressed in this blog is my personal one and does not クラウドブローカーとは represent the official opinion of Oracle Corporation and my employer.

このBlogについて

[Cloud] Service Broker for Kubernetesの提供を開始/Introducing Service Broker for Kubernetes

原文はこちら
https://blogs.クラウドブローカーとは oracle.com/cloud-infrastructure/introducing-service-broker-for-kubernetes


Oracle Cloud Infrastructure Service Broker for KubernetesのGeneral クラウドブローカーとは Availabilityをお知らせします。DevOpsとKubernetesへの適応を続けていくにあたり、開発者たちは彼らのアプリケーションやマイクロサービスが依存するクラウドサービスのプロビジョニング、およびバインディングを、自動化されたデプロイメントストラテジに含め、能率化することを望んでいます。 例えば、あなたのアプリケーションがどこで動くにせよオブジェクトストレージに依存しているとした場合、ストレージ・バケットのプロビジョニングはアプリケーションのデプロイメントプロセスの一部となっているべきです。さらに、できればKubernetesの中のデプロイメントプロセスとしたいところです。


このシンプルで統合されたデプロイメントという構想から、クラウドサービスをアプリケーションおよびそのデプロイツールに対して公開するための一貫性のあるモデルを提供するOpen クラウドブローカーとは Service Broker APIプロジェクトが生まれました。この新しいサービスブローカーは、Kubernetesクラスタで、また、Oracle Cloud Infrastructureサービスと組合せて使うためのOpen Service Broker APIの実装です。マイクロサービスやコンテナ化されたアプリケーションのための高いスケーラビリティを持ち、自動化され、自律チューニングするバックエンドであるAutonomous DatabaseなどのOracle Cloud Infrastructureサービスへのアクセスが、このサービスブローカーによってシンプルになります。

OCI Service Broker Architecture

Service Brokerの動作の仕組み

Oracle Cloud Infrastructure Service Broker for KubernetesはHelmチャートとして、Dockerコンテナとして、また、オープンソースとして利用可能です。以下のサービス(今後追加されていきます)へのサービスブローカーアダプタが含まれています:

  • Autonomous Transaction Processing
  • Autonomous Data Warehouse
  • Object Storage
  • Streaming

サービスブローカーをあなたのKubernetesクラスタに追加すると、kubectlの中でOpen Service Broker APIを使って前述のサービスとやり取りできます。これらのサービスをアプリケーションのデプロイ前にあらかじめプロビジョニングしておく必要はありません。アプリケーションを破棄したときにはこれらのサービスを片づけることも忘れないでください。

アプリケーションポータビリティをさらに強化するために、サービスブローカーはクラウドサービスへのサービスバインディングを作成するのにも使うことができます。各バインディングについてサービスブローカーはサービスに接続するために必要になるKubernetesシークレットを作成します。内容、フォーマットは様々で、たとえばObject Storageサービスへのバインディングには、ストレージバケットへアクセスするためのpre-authenticated URI(事前認証済URI)が含まれます。

Open Service Broker for さくらのクラウドでKubernetes + Service Catalog出来るようになりました

f:id:febc_yamamoto:20180309230517p:plain

元々はCloud Foundryから始まった仕組みらしいのですが、Service Brokerが非常に便利な仕組みだったために
Kubernetesなど他のプラットフォームでも利用できるようにCF依存でないオープンな仕様として Open Service Broker API が策定されたようです。
(Cloud Foundry周りにあまり詳しくないのでこの辺は後述の参考サイトなどを参照ください…)

Open Service Broker APIの策定はCloud Foundry Foundation (CFF)によってホストされており、現在のAPIバージョンは 2.13 となっています。
このCFFにはFujitsu, Google, IBM, Pivotal, RedHat, SAPといったメンバーが参加しているとのことです。

KubernetesとOpen Service Broker APIの関係は?

KubernetesにおいてもOpen Service Broker APIを利用するための仕組みが開発されています。
それがkubernetes-incubatorのService Catalogというものです。

f:id:febc_yamamoto:20180309225117p:plain

具体的にはService CatalogはKubernetesのカスタムリソースとして ServiceInstance と ServiceBinding を追加し、それらを管理するコントローラー+APIサーバを提供してくれます。

つまり、Kubernetes利用者からは以下のように kubectl コマンドでリソースを追加することで、外部のサービスを利用できるようになります。

これでAzure上のMySQL(Azure Database for MySQL)のインスタンスが作成されます。
このMySQLを各Podなどから利用できるようにするためのクレデンシャルの発行を以下のように行うことができます。
(なお、このインスタンス作成のことを Provisioning 、クレデンシャルの発行(仕様上は以外も出来ますが)を Binding と呼びます)

各PodではSecretを参照することでデータベースのホスト名/データベース名/ユーザー名/パスワードなどを知ることができます。
kubernetes上で完結できるので、例えばHelm chartとしてきちんと永続化したいデータを持つアプリなどの配布を行う際に非常に便利に使えます。

本題: Open Service Broker for さくらのクラウド

そして今回実装したのがService Catalogから依頼を受けて実際にサービスを調達する部分です。
これを利用することでkubernetesからさくらのクラウド上のマネージドなサービスを利用することが容易になります。

f:id:febc_yamamoto:20180309225120p:plain

先ほどのAzureの例のように、 kubectl コマンドからさくらのクラウド上のマネージドDBであるデータベースアプライアンスを作成できます。

Open Service Broker for さくらのクラウドの使い方

f:id:febc_yamamoto:20180309225123p:plain

クラスタを持っていない方はDocker for WindowsまたはDocker for MacでもOKです。
その場合、L2TP/IPSecなどでVPCルータに対してVPN接続を行っておきましょう。

f:id:febc_yamamoto:20180309225126p:plain

インストール

Helmのインストール

インストールしたら クラウドブローカーとは helm init を実行しておきます。

Service Catalogのインストール

(オプション) Service Catalog CLIのインストール

必須ではないですが、Service Catalog専用のCLI( svcat )をインストールしておくと詳細な情報が参照できて便利です。 CLIを試してみたい方はドキュメントを参考にインストールしてみてください。

Open Service Broker for さくらのクラウドのインストール

続いてHelmでOpen Service Broker for さくらのクラウドのインストールを行います。
さくらのクラウドのAPIキーが必要となりますので、発行していない方はコントロールパネルなどから発行しておいてください。

インストール後は kubectl get pod --namespace=osbs を実行して動いているか確認しましょう。

kubectl コマンドでデータベースアプライアンスを作成してみる

さくらのクラウド上のスイッチのIDとデータベースに割り当てるIPアドレス関連の記入が必要です。
記入したら kubectl コマンドを実行します。

うまくいきましたね? しばらく待つとさくらのクラウド上に新しいデータベースアプライアンスが作成されているはずです。
数分かかりますので気長に待ちましょう。

作成したデータベース上にアカウントを作成してみる

次に、Podなどから利用できるようにデータベース上に新たなアカウントを発行し、Kubernetesのsecretにクレデンシャルを登録します。
こちらも先ほどと同じくyamlファイルを作成して kubectl コマンドを実行することで行えます。

kubectl を実行すると、 my-mariadb-secret という名前でデータベースへのログイン情報(クレデンシャル)が登録されているはずです。

応用: 作成したデータベースを利用する例

応用例としてService Broker for さくらのクラウドを利用するhelm chartを作成してみました。 クラウドブローカーとは イケてるデータ可視化ツールである Metabase をインストールする例となっています。

Metabaseのバックエンドとしてさくらのクラウドのデータベースアプライアンスを利用、データベースアプライアンスはOpen Service Broker for さくらのクラウドが管理します。

ということで今回はOpen Service Broker for さくらのクラウドについて紹介しました。
Open Service クラウドブローカーとは Broker/Service Catalogは非常に便利ですのでぜひ使ってみてください!!

この記事を書くのに以下の記事/スライドを大いに参考にさせていただきました。
Service Brokerの仕組みについてはこちらの資料を読むのがおすすめです。

関連記事

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次
閉じる