概要

今日はKubernetesについて学んだ。

Kubernetesとは?

Kubernetesとは、 コンテナの運用管理と自動化を行うために設計されたオープンソースソフトウェア。 読み方は「クバネティス」もしくは「クーベネティス」。

Kubernetesの操作対象は、Dockerをはじめとするコンテナ。 コンテナは各種アプリケーションを実行してくれるが、 それ自体を管理したり、別サーバーと連携したりはできない。 そのため、複数ホストでコンテナを運用したい場合などは、管理が煩雑になってしまう。

Kubernetesは、このような問題を解決してくれるシステム。 Kubernetesを使えば、複数ホストでコンテナを運用する場合に、 ネットワークやストレージなどの連携管理が可能となる。 このような仕組みは「コンテナオーケストレーション」とも呼ばれる。

Dockerとは何が違うのか?

Kubernetesについて学んでいく過程で、 多くの人が抱く疑問が「Dockerとは何が違うの?」というもの。 確かに Dockerも Kubernetes同様に、 コンテナを用いてアプリケーションを実行するソフトウェアのひとつ。 ただし、両者はそれが実行される場所、および利用目的が大きく違う。

実行される場所について言えば、Kubernetesはクラスタで実行されるのに対して、 Dockerは単一ノードで実行される。 「クラスタ」とは、コンテナの配置や削除を行うときに指示を出す部分で、 「ノード」とは、クラスタを構成している各サーバーを指す。

利用目的について言うと、上述の通り、 Kubernetesの利用目的は各コンテナを管理すること。 一方で、Dockerの目的はアプリケーションを各コンテナに分離すること。

Kubernetesを利用する7つのメリット

  • アプリケーションの効率的な新機能リリースが可能
  • 障害に強い自己回復機能
  • オンプレミス・クラウドの両環境で利用可能
  • 高速・軽量な起動で開発スピードを加速できる
  • 柔軟にスケーリングできる
  • サービスディスカバリーで動作を把握できる
  • セキュリティを強化できる

参考文献・リンク

https://cloud-ace.jp/column/detail229/

https://qiita.com/tadashiro_ninomiya/items/6e6fea807b2a16732b5b