「コンテナ技術」やコンテナ実行環境の「Docker」、大量のコンテナ管理や負荷分散を実現する「Kubernetes」について概要から本番活用の仕方まで解説する「これから始める企業のためのコンテナ実践講座」。第4回は、Kubernetesのパッケージマネジャー「Helm」と手元で試せる「Minikube」「MicroK8s」を紹介します。
本連載「これから始める企業のためのKubernetes実践講座」では、第1〜3回にわたって、Kubernetesのメリットと主要機能を紹介しました。
第4回は、「リソース」の概念や、リソースを管理するための仕組みを解説します。最後に、Kubernetesをスモールスタートで始める方法を紹介します。
Kubernetesでアプリケーションを運用するには、YAML形式で書かれた「マニフェストファイル」が必要です(本連載第2回、第3回参照)。マニフェストファイルでは、コンテナイメージの動作や参照する「リソース」の設定を記述します。代表的なリソースは以下の5種類です。
リソースでの設定内容には、コンテナを実行する「Pod」、コンテナの起動数を指定する「レプリカセット」、複数のコンテナをグルーピングする「ラベル」をはじめとして、リソース制限やネットワーク接続、データ保存場所の設定などがあります。
Kubernetesを利用する場合は、マニフェストファイルでリソースを詳細に記述する必要があります。Kubernetesで運用するアプリケーションが増えれば増えるほど、複数のリソース(マニフェストファイル)を管理しなければなりません。アプリケーションが増えた場合は、DockerコンテナイメージをDocker HubやDockerプライベートレジストリで管理できますが、マニフェストファイルを管理するにはどうすればよいでしょうか。
現在は、マニフェストファイルの管理を容易にするため、3種類のプロジェクトが公開されています。
現在、最も利用されているのはHelmです。本稿では、Helmを紹介します。
Helmは、マニフェストファイルを「チャート(Chart)」という塊で管理するKubernetes用のパッケージマネジャーです。
Helmのチャートは、リソースの設定を丸ごとパッケージングして「Helm Hub」で共有したり、共有されているものを利用したりできる特長があります。
チャートをKubernetesで利用するには、KubernetesクラスタでHelmの「Tiller」というコンテナを実行し、Kubernetesクラスタを操作するクライアントにhelmコマンドをインストールします。
helmコマンドは、Helm Hubで共有されているチャートを指定してダウンロードしたり、ローカルにあるチャートを指定してKubernetesにアプリケーションをデプロイしたりすることができます。デプロイする際は引数に変数と値を指定することも可能です。例えば、管理者パスワードを付けてデプロイできます。
Helmを利用する場合は、マニフェストファイルを作成する前に、環境と合致するチャートが用意されているか、Helm Hubで探してみるとよいでしょう。
ちなみに、Kubernetes 1.14では、「Kustomize」という機能が追加されました。Kustomizeはパッケージマネジャーに近い機能を提供するコマンドです。マニフェストファイルを別のYAMLファイルに置き換えたり、読み込んだり、編集したりできます。
Copyright © ITmedia, Inc. All Rights Reserved.