Member-only story
Kubernetesとコンテナオーケストレーション
What is Kubernetes
Kubernetesとは何か。
Kubernetes(一般的にはK8sと書きます)は、コンテナ(Docker、Podman、CRI-OなどのContainer Engineで作成されたもの)の上で実行され、コンテナ化されたアプリケーションのデプロイ、スケーリング、管理を自動化するために管理する一般的なコンテナオーケストレーションツールです。
Kubernetesクラスターは、オンプレミス、パブリック、プライベート、ハイブリッドのいずれのクラウドにも対応しています。このため、Kubernetesは、Apache Kafkaを介したリアルタイムデータストリーミングのように、迅速なスケーリングを必要とするクラウドネイティブアプリケーションをホスティングするための理想的なプラットフォームです。
Advantages of Kubernetes:
ではKubernetesを使うメリットは何でしょうか。
すでに説明したものとは別に、Kubernetesをすれば他にもものすごく多くのメリットがあります。Kubernetesが主に使用されている強力なコンテナオーケストレーションツールとなっている要因はそこにあるのです。以下に例を挙げます。
慣れないサービスディスカバリメカニズムを使用するためにアプリケーションを修正する必要はありません。Kubernetesは、Podsに独自のIPアドレスとPodsのセットに対して1つのDNSネームを与え、それらの間でロードバランスを保ちます。
Kubernetesは、アプリケーションのヘルスを監視して、同時にすべてのインスタンスをキルしないようにしながら、アプリケーションやそのコンフィグレーションの変更を徐々にロールアウトしていきます。何か問題が発生した場合は、Kubernetesが変更をロールバックしてくれます。成長を続けるデプロイメントソリューションのエコシステムを活用しましょう。
失敗したコンテナを再起動し、ノードに障害が出たときにコンテナを置き換えて再スケジュールし、ユーザー定義のヘルスチェックに反応しないコンテナをキルし、サービスを提供する準備が整うまでクライアントにアドバタイズしません。
可用性を犠牲にすることなく、リソース要件やその他の制約に基づいてコンテナを自動的に配置します。クリティカルなワークロードとベストエフォートなワークロードを混在させて、ユーティライゼーションを向上させ、リソースをさらに節約します。