前回は、Docker Composeについて紹介しました。より柔軟にコンテナを管理するためのツールとして、今回からKubernetesについて説明していきたいと思います。
Kubernetesとは
Kubernetesは、コンテナ化されたアプリケーションのデプロイ、スケール、管理などを自動化するソフトウェアです。こういったソフトウェアはコンテナオーケストレーションツールと呼ばれ、Kubernetes以外にもDocker Swarm, Apache Mesosなどがあります。他にもマネージドサービスとして、Amazon ECSやGoogle Cloud Runなどがあります。
Kubernetesはこういったコンテナオーケストレーションツールの中でも、最も普及しているツールです。
主な機能
-
コンテナのオーケストレーション
- 複数のコンテナをクラスタ環境で効率的にデプロイ、管理
-
スケーリング
- アプリケーションの負荷に応じてスケールアップ、スケールダウンが可能
-
自己修復
- クラスタ内で障害が発生した場合、自動的にコンテナを再起動、再配置
-
サービスディスカバリとロードバランシング
- クラスタ内の各コンテナのネットワーク通信を管理
-
ストレージの管理
- 様々なストレージシステムを統合し、コンテナに対する永続的なストレージを提供
-
デプロイメントの自動化
- 宣言的な設定ファイルを用いてアプリケーションのデプロイを自動化
Kubernetesのメリット
- ポータビリティ
- どんな環境でもアプリケーションを実行できるので、ローカル開発環境からクラウド環境まで一貫性がある
- スケーラビリティ
- オートスケーリング機能によって、アプリケーションの需要に応じてリソースを動的に調整できる
- 柔軟性
- 多様なワークロードに対応可能
- 効率性
- クラスタ内のコンテナの配置を最適化できる
Kubernetesのインストール方法
ローカルの学習環境としては、minikube
が便利です。ここではminikube
のインストール方法を紹介します。
基本的には公式サイトに全て載っています。
インストールは非常に簡単で、LinuxでDebian系を使っている場合、以下のコマンドだけでインストールできます。
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube_latest_amd64.deb
sudo dpkg -i minikube_latest_amd64.deb
インストールが完了したら、minikubeを起動します。
minikube start
以上でインストールは完了です。
Docker Desktopをお使いの方は、チェックマークを入れるだけでKubernetesの機能を有効化できるため、そちらを利用しても良いかと思います。
まとめ
今回はKubernetesの概要と、ローカルでKubernetesを試すためのminikubeのインストール方法を紹介しました。次回は、Kubernetesの簡単なアーキテクチャの紹介と、基本用語について整理したいと思います。