サーバー、データベース、インフラに関するトピックス
■第8話:MicroK8sとは
(最終更新日:2023.07.2)
(絵が小さい場合はスマホを横に)
Dockerを用いてサーバー環境を構築するのが重要なことは、
本章の第5話と第6話で述べた。
そして、Dockerのデプロイ先として最も多いのは、AWSやGCPなどのクラウド環境ということは間違いない。
そしてAWSでは、ECSというDockerを簡単にデプロイ出来る環境が既に用意されていて、難しい設定無しに使うことができる。
しかしながら、クラウドを使いたくない場合(従量課金からの脱却したいといった要望や機密情報をより強固に守りたいという要望)もあり、
オンプレミス環境を採用するケースもしばしばある。
オンプレミスでもクラウドでも使える代表的なコンテナ(Docker)管理システムにKubernetesがあるが、慣れてない人が使うには非常に難しい。
Kubernetesと互換性があり、小規模であれば簡単に環境構築するコンテナ管理システムとして、MicroK8sやK3sといったものが出ている。
今回はそんなオンプレミスなサーバーににも簡単にデプロイ、コンテナ管理できるMicroK8sについて紹介する。
MicroK8sとは
MicroK8sは、開発、テスト、CI/CD環境などでの使用に最適化された軽量で簡単なコンテナ管理システム、Kubernetesのディストリビューションだ。
Ubuntuを開発したCanonicalが提供しており、安全性と最新の機能を確保するために自動アップデートがある。
そのシンプルさと軽量さにより、MicroK8sはそこまで大規模でない環境でのDockerのデプロイ先に適している。
コンテナ管理システム自体について簡単に説明すると、1つのサーバー内で隔離された仮想環境を構築できる。
例えば、各々バージョンの違うPHPを1つのサーバー内で同居させることもできる。
コンテナ管理システムの簡易イメージ(Kubernetes, MicroK8sなど)
MicroK8sの意義
本家のKubernetesは強力で柔軟性があるが、設定や管理が複雑で時間がかかる。
これは特に開発やテスト、小規模なプロジェクトにおいては過剰なシステムになる。
MicroK8sはこれに対する解決策として作られた。
インストールと設定は数分で終わり、非常に簡単にDockerをデプロイできる環境を構築できる。
MicroK8sが威力を発揮するのは、オンプレミスの小・中規模のサービスか、社内サーバーである。
例えば、社内サーバーの場合、レガシーな環境とモダンな環境が混在し、両者を1つのサーバーにインストールするのが難しい。
そんな個々のサービス間の環境の差異、バージョンの違いによる環境構築の難しさを解消するのがDockerであり、
簡単にDockerをデプロイできる環境がMicroK8sになる。
Docker自体の利点も含まれるが、オンプレミス環境での活用を考えた際のMicroK8sの利点をまとめると、以下の通りとなる。
特に4番は、オンプレミス環境だと価値が高い。どうしても更新が難しく、レガシーな環境で動かさざる得ないアプリケーションもある。
- 簡単にDockerをデプロイできる環境を作れる
- Dockerで管理できるので、環境構築をコード管理、共有できる。
- ローカルのテスト環境と本番環境の差異が少ない
- レガシー環境とモダン環境を混在できる。バージョンの違いやインストールによる悪影響を互いに与えずに済む
- GUIを入れれば、システムの運用状況、リソースの使用状況を簡単に把握できる
MicroK8sの特徴
■ライトウェイト
MicroK8sは、軽量なKubernetesディストリビューションで、低スペックなハードウェアでも動作する。
ローカルマシンやエッジデバイスでの使用に適している。
■セルフホスト
Dockerのデプロイに必要なすべてのサービスを1つのパッケージにまとめ、
自己完結型のシステムとして動作する。これにより、インストールや設定が簡単になり、管理が容易である。
■便利なCLI
シンプルで直感的なコマンドラインインターフェースを提供する。
これにより、開発者は容易にクラスタを操作することができる。
■セキュリティ
MicroK8sは最初からセキュリティにフォーカスして設計されている。
自動アップデート機能により、セキュリティアップデートも常に最新の状態を保つことができる。
■全機能対応
MicroK8sはその軽量さにも関わらず、Kubernetesの全機能を提供する。
これにより、本番環境での使用にも適している。
■プラグインとアドオン
数多くのKubernetesプラグインとアドオンをサポートしている。
これにより、開発者は自分の要求に応じてクラスタの機能をカスタマイズすることができる。
■オンプレミスとクラウドの両方での動作
MicroK8sはオンプレミス環境だけでなく、AWS、GCP、Azureなどの主要なクラウドプロバイダーでも動作する。
これにより、異なる環境間での移行が容易になる。これらの特徴により、MicroK8sは開発、テスト、本番環境でのKubernetesの使用を容易にする。
また、その軽量さと全機能対応の特性は、MicroK8sがさまざまな用途に適応できる理由の一つになる。
オンプレミス、クラウドどちらでも動く
まとめ
今回、MicroK8s自体についての説明と、その有用性について説明した。 オンプレミス環境、クラウド環境、いずれにおいても軽量で簡単にDockerがデプロイできる環境を用意できることは非常に便利だ。 様々なアプリケーションを動かす上で、環境差異に悩んだことのある人は是非、MicroK8sを試してみよう。
▼参考図書、サイト
「WEB+DB PRESS Vol.135」 実践Kubernetes 技術評論社
MicroK8s
CANONICAL
Docker
Docker公式サイト