Kubernetesを手元で試せる「Minikube」「MicroK8s」とはこれから始める企業のためのコンテナ実践講座(4)(2/3 ページ)

» 2019年05月23日 05時00分 公開
[矢野哲朗スタイルズ]

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」を実行させるという方法です。こちらも仮想化機能を有効化している必要があります。

Minikube利用構成 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と同じ機能を持ちます。

MicroK8s利用構成 MicroK8s利用構成

 Linuxディストリビューションが実行できるPCを1台用意して、Ubuntuをインストールする必要はありますが、原因が分かりにくいネットワークの問題を避けられるメリットがあります。

 もちろん、サーバで仮想化された独立したLinuxサーバを作成でき、そこにUbuntuをインストールできれば、それでも構いません。独立したLinuxサーバまたは、仮想サーバにLinuxサーバを立ち上げてMinikubeを実行する方法もあります。

 しかし、MinikubeはVirtualBoxを利用するので、仮想サーバのLinuxにVirtualBoxで仮想マシンを実行することになります。もし、仮想サーバで仮想マシンを実行させる機能が有効になっていなければ、実行できません。そういう場合には、MicroK8sの利用がお勧めです。

 そもそも「Linuxサーバを準備できない」という場合は、「Katacoda」で学ぶ方法があります。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。