概要
今日は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