Kubernetesを手元で試せる「Minikube」「MicroK8s」とは:これから始める企業のためのコンテナ実践講座(4)(2/3 ページ)
「コンテナ技術」やコンテナ実行環境の「Docker」、大量のコンテナ管理や負荷分散を実現する「Kubernetes」について概要から本番活用の仕方まで解説する「これから始める企業のためのコンテナ実践講座」。第4回は、Kubernetesのパッケージマネジャー「Helm」と手元で試せる「Minikube」「MicroK8s」を紹介します。
Kubernetesとパッケージマネジャーによるインフラ管理の変化
Kubernetesのマニフェストファイルを管理するためのパッケージマネジャーが登場し、Kubernetesでより簡単に運用管理ができるようになりました。
Linuxでソフトウェアを開発するには、コンパイラとコンパイルの知識が必要でした。それが、rpmやdebなどのパッケージマネジャーの登場によってコンパイルの知識が不要になり、アプリケーションの設定に関する知識だけあればよくなった状況に似ています。
今後は、「アプリケーションをインストールして設定して安定稼働させる」というインフラエンジニアの仕事はますます、「Kubernetesでアプリケーションを実行できるように環境を整備する」というものに置き換わっていくかもしれません。
Kubernetesの利用ケース
Kubernetesはどのような場面で利用するのに適しているでしょうか。最も利用しやすいのは、自社で提供しているコンシューマー向けサービスの運用です。
Kubernetesを本番環境で運用するには、開発者と運用者の連携が必要不可欠です。開発者が自社にいるようなコンシューマー向けサービスの場合、社内で密に連携を取れるため、適用しやすいといえます。では、社内で利用している業務システムではどうでしょうか。
まず、業務システムをオープンソースソフトウェア(OSS)で構築している場合は、Kubernetesで運用できるでしょう。その理由は、Dockerが提供するDockerコンテナイメージ共有サービス「Docker Hub」で、OSSのDockerコンテナイメージが提供されている可能性が高いからです。
Docker Hubで提供されているDockerコンテナイメージを利用して、自分でイメージを作成することなく環境を構築してアプリケーションをデプロイして、Kubernetesで運用できるというわけです。
一方、OSSを使わずに開発したシステムや、ベンダーから購入したアプリケーションパッケージをKubernetesで運用するのは難しいかもしれません。Dockerイメージで構築していない場合は、コンテナイメージを作成する必要があるからです。購入したアプリケーションパッケージで業務システムを構築している場合は、アプリケーションパッケージをDockerイメージに組み込むことを販売元のベンダーが認めているか、ライセンスを確認したり、問い合わせたりする必要があるでしょう。
本連載第1〜3回でお伝えしてきたようにKubernetesが運用のハードルを下げることは間違いありませんが、Kubernetesは仮想マシンを社内で稼働させるものではないため、「全社内システムを簡単にKubernetesで運用できる」というわけではないことを覚えておくとよいでしょう。
Kubernetesを手を使って学んでみるには?
Kubernetesのマニフェストファイルを管理できるパッケージマネジャーやKubernetesを利用できるケースを解説しました。それでは手を使ってKubernetesを学んでいきましょう。まず、手元の環境でKubernetesを始める方法を紹介します。
1つ目は、「Docker for Windows」「Docker for Mac」をインストールしてKubernetesを実行する方法です。Windows OSの場合は、「Windows 10 Pro」以上で、仮想化機能(「Intel VT」か「AMD-V」)を有効化して「Hyper-V」が動作するようにしておく必要があります。
2つ目は、WindowsまたはMacに「Oracle VM VirtualBox」をインストールして「Minikube」を実行させるという方法です。こちらも仮想化機能を有効化している必要があります。
しかし、この2つはWindows/Mac環境に仮想化したOSを立ち上げてKubernetesを実行するため、ネットワーク環境がトリッキーになるという一面があります。「やってみたけどうまく実行できない」「取りあえず実行できたが、Kubernetesにつながらない」というトラブルに見舞われるかもしれません。
そこで、お勧めするのが、3つ目の「MicroK8s」を用いてKubernetes環境を構築する方法です。
MicroK8sによるKubernetes環境の作成
MicroK8sは、Ubuntuが開発しているKubernetesディストリビューションの一つで、以下の特長があります。
- VirtualBoxがなくても動く(=仮想サーバでも動かせる)
- 1ホストで軽量に動く(約1分で起動)
- 1コマンドでインストールやバージョンアップ、リセットができる
- 「Dashboard」「Docker Container Registry」「GPU Passthrough」「Istio」が簡単に有効化/無効化できる
- CNCF(Cloud Native Computing Foundation)からKubernetesディストリビューションとして認定されている
- ネットワーク設定に関するトラブルを避けられる
- Dockerレジストリが組み込まれているので、自分でビルドしたコンテナイメージを外部にアップロードせず保存できる
Microk8sは、1ホストで実行するので、通常のKubernetesクラスタのように複数台で連携する機能はありません。それ以外はKubernetesと同じ機能を持ちます。
Linuxディストリビューションが実行できるPCを1台用意して、Ubuntuをインストールする必要はありますが、原因が分かりにくいネットワークの問題を避けられるメリットがあります。
もちろん、サーバで仮想化された独立したLinuxサーバを作成でき、そこにUbuntuをインストールできれば、それでも構いません。独立したLinuxサーバまたは、仮想サーバにLinuxサーバを立ち上げてMinikubeを実行する方法もあります。
しかし、MinikubeはVirtualBoxを利用するので、仮想サーバのLinuxにVirtualBoxで仮想マシンを実行することになります。もし、仮想サーバで仮想マシンを実行させる機能が有効になっていなければ、実行できません。そういう場合には、MicroK8sの利用がお勧めです。
そもそも「Linuxサーバを準備できない」という場合は、「Katacoda」で学ぶ方法があります。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- Kubernetesを選んだ技術的理由とコンテナをプロジェクトで活用する上でのポイント
本連載では、サービスの開発、提供のアジリティ向上の一助となることを目的として、企業における「Kubernetes」の活用について解説する。今回は、Kubernetesを活用することを決めた理由について「技術」面から解説するとともに、「システムの開発やテスト、デプロイの効率を向上させるために、どのような点に配慮すべきか」について説明する。 - 「Kubernetesで運用する」その前に Kubernetesを本番環境で利用する際のポイント
日本マイクロソフトは2018年11月5〜7日に「Microsoft Tech Summit 2018」を開催。MicrosoftでCloud Developer Advocateを務める寺田佳央氏は、Kubernetesを本番環境で活用する際のポイントや、今後のJavaについて語った。 - 2000店舗に展開の事例など、エッジでのKubernetesに注目が集まる
全米2000店舗にKubernetesクラスタを展開しているファストフードチェーンの事例などで、エッジにおけるKubernetesへの関心が高まっている。Kubernetesコミュニティーでも議論が始まった。