ラズパイで作る!Kubernetesクラスターを基盤とした自宅プライベートクラウド構築プロジェクト『OUROBOROS』の紹介

 

こんにちは、@izewfktvy533です。

本稿は、「ラズパイで作る!Kubernetesクラスターを基盤とした自宅プライベートクラウド構築プロジェクトOUROBOROS」という個人的興味で発足したプロジェクトの紹介です。

 

本プロジェクトの背景

筆者は先月、ラズパイでKubernetesクラスターを構築しており、本ブログはこの構築したラズパイK8sクラスター上で公開しています。

すでに世界で多くの人たちがラズパイでKubernetesクラスター構築を実現させており、構築方法などのチュートリアルが公開されています。 そのため比較的手軽にラズパイでKubernetesクラスターを構築することができるかと思います。 しかし、ラズパイでK8sクラスターを構築したあと、それでどんなことができるでしょうか。 人それぞれクラスター構築に取り組む理由があるとは思いますが、筆者自身はその中で下記のようなことができると考えています。

一つ目として、純粋にKubernetesの学習用として使うことです。 筆者もラズパイK8sクラスター上でKubernetesのマニュフェストファイルなどを実際に動かしてみながらKubernetesの学習を行っています。 クラウドサービスを使ったり、1台のPCでKubernetesを動かしながら学習することは可能ではありますが、やはり物理的にクラスターとして存在している点に魅力を感じます。

二つ目として何らかのWebサービスの開発・運用を行うことが可能なプライベートクラウドとして稼働させることです。 筆者も、このブログをWebサービスと見立ててラズパイK8sクラスター上で運用しはじめました。 開発・運用などのDevOpsに関することや、クラウドネイティブといった分野に対してWebサービスを開発・運用しながら学習することができるのでとてもオススメです。

 

さて、本プロジェクトは、Kubernetesクラスターを構築し、そのクラスター上でAmazon EC2やGCEのような仮想マシンを動作させることができるある種のWebサービスである『はりぼてクラウドサービス』を提供するクラウドシステムが稼働する自宅プライベートクラウドを物理マシンにRaspberry Piを使用して構築に取り組んでいきます。

そしてこのプロジェクトの最終成果物として、プロジェクトを通して構築した自宅プライベートクラウド上で稼働する『はりぼてクラウドサービス』を提供するクラウドシステムを利用して、自分自身である自宅プライベートクラウドを構築してみたいと思います。

言い換えますとクラウド上にそのクラウド自身を構築することが可能な自己言及性のあるシステムの構築を目指します。

これは自宅プライベートクラウドの構築にInfrastructure as Codeを用いることで、構築されたクラウド上で自身を構築することができると考えています。

つまり、Ansibleのような構成管理ツールを使用してを構築されたK8sクラスター上でKubernetesマニュフェストファイルとして管理されているクラウドサービスを提供するクラウドシステムに対して、このシステムが提供するクラウドサービスを利用して構築された仮想マシン上にクラウドシステムを構成するこれらのコードを適用することで、クラウドシステム上に自分自身であるクラウドシステムを構築することが可能となるのです。

 

本プロジェクトの目的

下記に本プロジェクトの目的を示します。


物理マシンにRaspberry Piを使用して、Infrastructure as Codeを適用して構築したKubernetesクラスター上でAmazon EC2やGCEのような仮想マシンを動作させることができるある種のWebサービスである『はりぼてクラウドサービス』を提供するクラウドシステムを稼働させることができ、さらに、このクラウドシステム上にそのクラウドシステム自身を構築することが可能な自己言及性を持つシステムとして自宅プライベートクラウドの構築を行う。


 

本プロジェクトのおおまかな工程

  1. Raspberry Piのセットアップと物理インフラの構築
  2. Ansibleを用いたKubernetesクラスターの構築
  3. KubernetesのチュートリアルとしてのWebサービス開発
  4. 『はりぼてクラウドサービス』の開発とKubernetesクラスター上へのデプロイ
  5. クラウドシステム上で稼働する『はりぼてクラウドサービス』を利用した、Kubernetesクラスターの構築
  6. 『はりぼてクラウドサービス』をクラウドシステム上に構築したKubernetesクラスター上にデプロイ

 

Ouroboros