Kubernetesを手元で試せる「Minikube」「MicroK8s」とは:これから始める企業のためのコンテナ実践講座(4)(1/3 ページ)
「コンテナ技術」やコンテナ実行環境の「Docker」、大量のコンテナ管理や負荷分散を実現する「Kubernetes」について概要から本番活用の仕方まで解説する「これから始める企業のためのコンテナ実践講座」。第4回は、Kubernetesのパッケージマネジャー「Helm」と手元で試せる「Minikube」「MicroK8s」を紹介します。
本連載「これから始める企業のためのKubernetes実践講座」では、第1〜3回にわたって、Kubernetesのメリットと主要機能を紹介しました。
- 「コンテナって何? どう使える?」――ソフトウェア開発の課題を解決するコンテナ技術(第1回)
- 「Excel手順書にさようなら」――運用管理者の不安を解消する「Kubernetes」のコンセプト(第2回)
- Kubernetesがクラウド界の「Linux」と呼ばれる2つの理由(第3回)
第4回は、「リソース」の概念や、リソースを管理するための仕組みを解説します。最後に、Kubernetesをスモールスタートで始める方法を紹介します。
マニフェストファイルのリソースとは
Kubernetesでアプリケーションを運用するには、YAML形式で書かれた「マニフェストファイル」が必要です(本連載第2回、第3回参照)。マニフェストファイルでは、コンテナイメージの動作や参照する「リソース」の設定を記述します。代表的なリソースは以下の5種類です。
- Workloadsリソース:コンテナをクラスタで実行するために利用されるリソース
- Discovery&LBリソース:コンテナを外部から接続できるようにネットワークを接続したり、コンテナの起動に合わせて負荷分散したりできるようにするためのリソース
- Config&Storageリソース:コンテナの設定や機密データ、永続ボリュームを提供するリソース
- Clusterリソース:セキュリティやネットワークポリシー、認証など、Kubernetesクラスタを管理するリソース
- Metadataリソース:クラスタ内の他のリソースを外から制御できるリソース
リソースでの設定内容には、コンテナを実行する「Pod」、コンテナの起動数を指定する「レプリカセット」、複数のコンテナをグルーピングする「ラベル」をはじめとして、リソース制限やネットワーク接続、データ保存場所の設定などがあります。
Kubernetesを利用する場合は、マニフェストファイルでリソースを詳細に記述する必要があります。Kubernetesで運用するアプリケーションが増えれば増えるほど、複数のリソース(マニフェストファイル)を管理しなければなりません。アプリケーションが増えた場合は、DockerコンテナイメージをDocker HubやDockerプライベートレジストリで管理できますが、マニフェストファイルを管理するにはどうすればよいでしょうか。
現在は、マニフェストファイルの管理を容易にするため、3種類のプロジェクトが公開されています。
現在、最も利用されているのはHelmです。本稿では、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.
関連記事
- 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コミュニティーでも議論が始まった。