連載
» 2019年05月23日 05時00分 公開

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

「コンテナ技術」やコンテナ実行環境の「Docker」、大量のコンテナ管理や負荷分散を実現する「Kubernetes」について概要から本番活用の仕方まで解説する「これから始める企業のためのコンテナ実践講座」。第4回は、Kubernetesのパッケージマネジャー「Helm」と手元で試せる「Minikube」「MicroK8s」を紹介します。

[矢野哲朗,スタイルズ]

 本連載「これから始める企業のためのKubernetes実践講座」では、第1〜3回にわたって、Kubernetesのメリットと主要機能を紹介しました。

 第4回は、「リソース」の概念や、リソースを管理するための仕組みを解説します。最後に、Kubernetesをスモールスタートで始める方法を紹介します。

マニフェストファイルのリソースとは

 Kubernetesでアプリケーションを運用するには、YAML形式で書かれた「マニフェストファイル」が必要です(本連載第2回、第3回参照)。マニフェストファイルでは、コンテナイメージの動作や参照する「リソース」の設定を記述します。代表的なリソースは以下の5種類です。

  • Workloadsリソース:コンテナをクラスタで実行するために利用されるリソース
  • Discovery&LBリソース:コンテナを外部から接続できるようにネットワークを接続したり、コンテナの起動に合わせて負荷分散したりできるようにするためのリソース
  • Config&Storageリソース:コンテナの設定や機密データ、永続ボリュームを提供するリソース
  • Clusterリソース:セキュリティやネットワークポリシー、認証など、Kubernetesクラスタを管理するリソース
  • Metadataリソース:クラスタ内の他のリソースを外から制御できるリソース
Kubernetesの主要リソース Kubernetesの主要リソース

 リソースでの設定内容には、コンテナを実行する「Pod」、コンテナの起動数を指定する「レプリカセット」、複数のコンテナをグルーピングする「ラベル」をはじめとして、リソース制限やネットワーク接続、データ保存場所の設定などがあります。

リソースと機能の関係 リソースと機能の関係

 Kubernetesを利用する場合は、マニフェストファイルでリソースを詳細に記述する必要があります。Kubernetesで運用するアプリケーションが増えれば増えるほど、複数のリソース(マニフェストファイル)を管理しなければなりません。アプリケーションが増えた場合は、DockerコンテナイメージをDocker HubやDockerプライベートレジストリで管理できますが、マニフェストファイルを管理するにはどうすればよいでしょうか。

Dockerコンテナとマニフェストファイル(リソースファイル)の関係 Dockerコンテナとマニフェストファイル(リソースファイル)の関係

 現在は、マニフェストファイルの管理を容易にするため、3種類のプロジェクトが公開されています。

 現在、最も利用されているのはHelmです。本稿では、Helmを紹介します。

Helmとは

 Helmは、マニフェストファイルを「チャート(Chart)」という塊で管理するKubernetes用のパッケージマネジャーです。

 Helmのチャートは、リソースの設定を丸ごとパッケージングして「Helm Hub」で共有したり、共有されているものを利用したりできる特長があります。

 チャートをKubernetesで利用するには、KubernetesクラスタでHelmの「Tiller」というコンテナを実行し、Kubernetesクラスタを操作するクライアントにhelmコマンドをインストールします。

 helmコマンドは、Helm Hubで共有されているチャートを指定してダウンロードしたり、ローカルにあるチャートを指定してKubernetesにアプリケーションをデプロイしたりすることができます。デプロイする際は引数に変数と値を指定することも可能です。例えば、管理者パスワードを付けてデプロイできます。

 Helmを利用する場合は、マニフェストファイルを作成する前に、環境と合致するチャートが用意されているか、Helm Hubで探してみるとよいでしょう。

HelmチャートとKubernetesマニフェストの関係 HelmチャートとKubernetesマニフェストの関係

 ちなみに、Kubernetes 1.14では、「Kustomize」という機能が追加されました。Kustomizeはパッケージマネジャーに近い機能を提供するコマンドです。マニフェストファイルを別のYAMLファイルに置き換えたり、読み込んだり、編集したりできます。

       1|2|3 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

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

メールマガジン登録

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