1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Karbon Platform Services ~NutanixによるマルチクラウドPaaS~ を使ってみる 前編

Last updated at Posted at 2020-10-28

はじめに

概要

Nutanixは2020年9月、Karbon Platform Services(KPS)を発表しました。これはKubernetesをベースとしたマルチクラウドPaaSを実現するものです。プレスリリースと製品紹介は以下をご覧ください。

プレスリリース
Karbon Platform Services製品紹介ページ

アーキテクチャ

アーキテクチャは下図で、以下のコンポーネントから成り立っています。

  • コントロールプレーン(紫の部分)
    SaaSベースで開発者、管理者向けのUIを提供し、インフラとアプリケーションのライフサイクル管理をマルチテナントで提供しています。

  • サービスドメイン(黄緑の部分)
    ベアメタル環境、Nutanix環境、VMware環境、パブリッククラウド環境とロケーションを選ばずKubernetesクラスタを展開し、その上にランタイム/ネットワーク/データ/可観測性の各領域における代表的な機能群のうち、管理者によって選択されたサービスを展開します。
    スクリーンショット 2020-10-27 22.47.33.png

管理画面の見え方はこちらです。プロジェクト(テナント)毎にどのようなプラットフォーム機能を有効化するのか選択できます。
image.png

メリット

開発者/運用者を、インフラを含めたユーティリティの管理業務から解放し、競争力の源泉となるアプリケーションを迅速、安全、継続的に本番環境へとデリバリすることで、組織のビジネスゴール達成を支援します。

ユニークな点

同じメリットを謳うKubernetesベースの製品は世にあまた存在していますが、以下がKPSのユニークな点です。

  • マルチクラウド対応
    サービスドメインをあらゆる環境にデプロイし、SaaSコントロールプレーンから統合的に管理可能です。インフラの配置先をロックインしません。

  • グローバルデータパイプライン
    あるサイトで発生するデータを、KPSのサービスドメインで処理した後、マルチクラウド対応のグローバルデータパイプラインを利用することでリアルタイムに転送可能です。技術要件やコスト要件に基づいて最適な場所にデータを配置出来ます。データの配置場所についてもロックインしません。

  • プラネットスケール
    アプリケーション開発者が書いたコードをコントロールプレーンにアップロードすると、数千のサイトにアプリケーションの一斉配信が出来ます。REST API対応によりCI/CDパイプラインとの連携も可能です。

  • IoTエッジのユースケースに強い
    ご存知の方もいらっしゃるかもしれませんが、KPSは以前、Xi IoTというIoTエッジに特化したソリューションで提供していたものを汎用的なPaaS製品としてリブランド致しました。上記の「グローバルデータパイプライン」、「プラネットスケール」はIoTユースケースのために実装されたものです。よって特にIoTエッジのユースケースに強みを持っています。

Nutanix Karbonとの違い

Nutanixに詳しい方は「Karbonってそもそもあったじゃん?」と疑問を持たれるかもしれませんが、KarbonとKPSはそれぞれ用途が異なる製品となっています。

下図左のNutanix KarbonはいわゆるKubernetes as a Service(KaaS)に位置付けられる製品であり、Nutanixクラスタ上において「Kubernetesクラスタのライフサイクル管理をシンプルに」する製品です。よって、ユーザアプリケーションやファンクションの実装にあたっては補完的なユーティリティ群を管理者が構築/管理運用を行う必要があります。ユーティリティ群のバージョンや詳細設計位に柔軟性があるメリットがある反面、管理者はそれぞれの構成要素の運用にリソースを投じ、安定稼働に責任を追わなくてはいけません。

一方、右のKPSはKubernetesベースのPaaSであり、インフラとしてのKubernetesクラスタや補完的なユーティリティの管理運用をまるっとプラットフォーム機能として抽象化、ビルトインされた形で提供します。これにより開発者や運用者はよりユーザアプリケーションやファンクションの実装や管理に集中出来ます。プラットフォーム機能に制限がある等、柔軟性にデメリットが出てくる可能性がある反面、俊敏性や管理者の生産性にメリットがあります。
スクリーンショット 2020-10-27 22.46.26.png

これらのアプローチはどちらが良い悪いという議論ではなく、最終的なビジネスゴール、技術要件、コスト要件等を元に、これら2つの選択肢からベストなアプローチを決定されることを推奨致します。

本記事では

前置きが長くなりましたが、本記事ではこんなKPSをとりあえず使ってみることを目的に、始め方、Nutanix AHVにおけるサービスドメインの構築、サンプルのマイクロサービスアプリケーションの構築までを前後編に分けてご紹介致します。今回はその前編として、サービスドメインの構築までを行います。

構築手順

1. 事前準備

1-1. My Nutanixアカウントの作成

こちらにアクセスし、My Nutanixアカウントを作成します

1-2. AHV用イメージのURL取得

こちらにアクセスし、"Service Domain VM QCOW2 File for AHV"の右にある点3つアイコンをクリックするし、"Copy Download Link"をクリックします。My Nutanixへのログインが必要です。

スクリーンショット 2020-10-28 13.51.43.png

1-3. イメージのアップロード

ご自身の環境のPrism Elementにアクセスし、"+イメージをアップロード"から以下入力し、"保存"をクリックします。

Name: お好きなイメージ名
Storage Container: イメージの格納先コンテナ
Image Source: "From URL"をクリックし、1-2で取得したダウンロードリンクをペーストします。
スクリーンショット 2020-10-28 13.57.32.png

2. Karbon Platform Servicesを始める

2-1. KPSトライアルの開始

こちらにアクセスし、"Karbon Platform Services"の下の"Start Trial"をクリックします。(画像はLaunchとなっていますが、新規アカウントの場合、Start Trialとなっています。)
スクリーンショット 2020-10-27 16.45.28.png

下記画像のようなWelcomeメッセージが現れます。"Get Started"をクリックします。
スクリーンショット 2020-10-27 16.45.56.png

更新情報が現れます。"OK, Got it!"をクリックします。
スクリーンショット 2020-10-27 16.46.50.png

KPSのコントロールプレーンにログイン出来ました。
スクリーンショット 2020-10-27 16.48.14.png

3. サービスドメイン構築

3-1. サービスドメインのベースとなる仮想マシンの構築

Nutanix上においてサービスドメインと呼ばれる、Kubernetesクラスタのベースとなる仮想マシンを起動します。Prism Elementにログインし、"仮想マシン" -> "+仮想マシンを作成"の順で進めます。

Name: お好きな仮想マシン名を入力
vCPU(s): 8
Number of Cores Per vCPU: 1
Memory: 16 GiB
Disk: "+Add New Disk"を選択後、以下入力し、"Add"
タイプ: DISK
オペレーション: イメージサービスからクローン
バスタイプ: SCSI
イメージ: 1-3でアップロードしたイメージを選択
Boot Configuration: Legacy BIOS
Network Adapters (NIC): "+Add New NIC"から接続させるネットワークを選択
Custom Script: チェックを有効化
Type Or Paste Script: 以下を入力

cloud-init
#cloud-config 
final_message: "cloud-config completed"

image.png
image.png
スクリーンショット 2020-10-28 9.58.34.png
image.png
image.png

仮想マシンが電源オフ状態で作成されますので、"Power On"をクリックして電源をオンにします。
スクリーンショット 2020-10-27 17.05.05.png

電源が上がりました。このとき、"IP Address"カラムからこの仮想マシンのIPアドレスを確認します。
スクリーンショット 2020-10-27 17.08.31.png

3-2. 仮想マシンの起動とシリアル番号確認

ブラウザから、http://(3-1で作成した仮想マシンのIPアドレス):8080/v1/snにアクセスすると、以下画像のような画面が現れれば、仮想マシンの起動が確認出来ます。これを後のステップで使用するため、タブを消さないで残しておきます。
スクリーンショット 2020-10-27 17.08.57.png

3-3. 複数ノードのサービスドメインを作成したいときは...

このまま進むと、単一ノードのサービスドメイン(=Kubernetesクラスタ)が作成されますが、複数ノードによるサービスドメインを作成することも可能です。その場合、3-1,3-2のステップをノード数分繰り返します。注意: トライアルにおいては最大3ノード分のサービスドメイン作成のみとなっていますので、ご注意下さい。

3-4. KPSコントロールプレーンへのサービスドメイン登録

KPSにログインし、中央の"+Add Service Domain"をクリックします。
スクリーンショット 2020-10-27 17.10.49.png

以下入力し、"Next"をクリックします。
Name: サービスドメインの名前
Type: 単一ノードのサービスドメインであれば"Single-Node", 複数ノードであれば"Multi-Node"
Node Details:
作成した仮想マシンそれぞれについて、以下入力し、チェックをクリックします。
Serial Number: 3-2で取得したシリアル番号を入力
IP Address: IPアドレスを入力
Gateway: デフォルトゲートウェイのIPアドレスを入力
Subnet: サブネットマスクを入力
Add Categories: KPSではカテゴリーという属性情報を使用してスケーラブルなリソース管理が可能ですが、こちらではカテゴリーを付与せずに進めます。
スクリーンショット 2020-10-27 17.11.46.png
スクリーンショット 2020-10-27 17.12.53.png

以下入力し、"Add"をクリックします。
Environment Variables: サービスドメインに固有の環境変数を設定し、Kubernetesアプリケーションから参照して利用する事ができますが、ここでは設定せずに進めます。
GPU Usage: もしあなたのサービスドメインが(v)GPUを搭載している場合、その利用方法を選択できます。Kubernetes AppやデータパイプラインでGPUを使用する場合は"Use GPU for Kubernetes Apps and Data Pipelines"を、AI学習モデル管理機能を用いてGPUを使用する場合は"Use GPU for AI Inferencing"を選択します。ここではGPUを搭載していませんが、"Use GPU for Kubernetes Apps and Data Pipelines"を選んで進めます。
SSH Access: 通常サービスドメインへのアクセスは認められてませんが、要件上、あるいはトラブルシューティング等特別な理由でNutanixより権限付与されたユーザについてはチェックを有効化することでサービスドメインじへのSSHアクセスが可能となります。
スクリーンショット 2020-10-27 17.13.44.png

サービスドメインの登録が完了し、"Not Onboarded"状態となります。
スクリーンショット 2020-10-27 17.13.59.png

15~20分ほど待機すると、"Healthy"状態となります。
スクリーンショット 2020-10-27 22.35.08.png

以上でサービスドメインの登録が完了しました。前編はここまでで、次回後編としてサンプルアプリケーションのデプロイを行っていきます。

参考文献

IoTユースケースについてはこちらのブログが詳しいです。
開発チームブログ1
開発チームブログ2
開発チームがホストしているGithub

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?