LoginSignup
18
20

More than 5 years have passed since last update.

Kubernetesというコンテナ・オーケストレーション・プラットフォーム

Last updated at Posted at 2017-10-11

Kubernetes(ギリシア語:κυβερνήτης。読み方:クベルネーテス。意味:按針、船長、知事。)はコンテナアプリのデプロイとスケーリングの自動化に対するプラットフォームだ。もともとGoogleに実装されて2015年Apache License 2.0でオープンソースとして公開された。

Kubernetesと同じようなプラットフォームはAmazon ECSやDocker Inc.のSwarm(スウォーム)がある。

なぜKubernetes?

DockerはKubernetes, ECSなどのプラットフォームを利用せずにも使える。しかし、コンテナアプリは増えたら、多くのコンテナの管理に適当なツールがないと困るだろう。CLIツールは当たり前だが多くのコンテナのクラウドの管理にGUIも必要だろう。

Kubernetesのきっかけ

先週は初めてのDockerとECSを利用するプロジェクトをリリースして、ベンダーロックインも避けるためにECS以外のDockerプラットフォームも調べたほうがいいと思った。Twitterも多くの記事でもKubernetesというものは人気そうでいったいどんなものかを調べることにした。

アーキテクチャ

kub.png

主な要素

  • Node(ノード)
    • コンテナを運用できるマシン(物理、仮想)
    • 全ノードにインストールされるKubeletというサービスがノードとポッドの管理APIを提供する
  • Pod(ポッド)
    • 1~nのコンテナの集まり
    • 一つのコンテナは一つのマイクロサービスだ(MySQL、Apache、とか)
    • ポッドのコンテナは同じ物理マシン、IPアドレス、などのリソースを共有する
  • Service(サービス)
    • 1~nのポッドの集まり
  • Volume(ボリューム)
    • ポッドのライフサイクルと一緒(コンテナが消されてものボリュームが残る、ポッドが消されたらボリュームも消される)
    • ポッドのコンテナはボリュームを共有する
  • Namespace(ネームスペース)
    • 同じ物理クラスターの中の仮想クラスター
    • プロジェクトとチームが多い環境に向けているリソースアロケーション方法

ほかのプラットフォームとの比較

Kubernetes ECS Docker Cloud Swarm
スポンサー Google, RedHat, Microsoft, IBM Amazon Docker Inc.
クラウド対応 GKE(Google), Azure(Microsoft), OpenShift(RedHat), Bluemix(IBM), などなど AWS Docker Cloud
スケーリング単位 ポッド タスク タスク
デプロイ単位 サービス サービス サービス
機能(特にGUI) かなり多い 普通 少ない、まだbeta...
設置 クラウドによって異なる、複雑(カスタマイズ性高いから) 普通 簡単

Kubernetesの印象

確かにでかいプラットフォームだ。KubernetesではECSのようなサービスを自分のサーバ環境に設置できそうだ。要素、ツール、用語などについて勉強することはまだ多い。Kubernetesのツールはまだあまり触っていないので使いやすいか、実際にどれぐらい便利か、とかの判断はまだできない。ローカル環境の設置とアプリのデプロイのサンプルは次の記事までお待ちください。

18
20
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
20