少し前から話題のOSS『Kubernetes』について、ご紹介させていただきます。
Kubernetes (K8s)とは
一言で説明すると
コンテナ化されたアプリケーションを合理的に運用するために設計されたOSSのプラットフォーム
です。
背景
アプリケーションをDockerなどのコンテナ上で開発することが多くなりました。
コンテナ上で開発することで、
アプリケーション実行時に必要な色々なもの([ライブラリ]、[OSバージョン]、[パッケージ]など)をコンテナに詰め込み、不変の実行基盤を作ることができる。
からです。
しかし、コンテナをサービスとして提供するには課題が多くありました。
- コンテナの冗長性の確保はどうしよう。
- アプリケーションの無停止でのバージョンアップはどうしたらいいのか。
- コンテナを負荷によってスケールしたい。
- etc…
これらを解決するために生まれたのがコンテナオーケストレーションプラットフォームである
Kubernetes
なのです。
Kubernetesが解決する課題
コンテナとKubernetesは次のような「サービス運用」の課題の解決を助けます。
- アプリケーションの頻繁なリリースが必要
- サービスを止められない
- 初期投資を抑えて状況に合わせてスケールを調整したい
- 全てをコンテナで実装するのは早すぎるという懸念
- テストが完了したら変更を加えないようにしたい
- オンプレ、クラウド両方同じサービスを稼働させたい
- アプリケーション中心のオーケストレーションが必要
- 企業独自の技術に依存しないための標準技術を採用したい
- リソースの無駄を削減したい
Kubernetesの学習方法について
さて今回、Kubernetesの概要について紹介させていただきました。もし、
- ざっとでいいから概要を理解したい。
- 設計、構築を前提とした実戦レベルの知識を習得したい。
という方がいらっしゃいましたらこちらの記事にて解説をしていますので、よろしければご覧ください。