はじめに
Kubernetesとはコンテナ化されたアプリケーションのデプロイ、スケーリング、管理を自動化するオープンソースのオーケストレーションプラットフォームです。
コンテナを使用するときに、複数のコンテナを効率的に管理することが難しくなります。
そういったことを解決するために開発されたツールです。
Kubernetesの主な役割と特徴
1.自動化されたコンテナ管理:
Kubernetesは複数のコンテナが分散されたクラスタ上で正しく動作できるよう自動的に管理します。
これはコンテナのデプロイ、停止、再起動などのタスクが含まれます。
2.スケーリング:
トラフィックが増加したとき、Kubernetesは自動的にコンテナの数を増やしたり、需要に応じてアプリケーションをスケーリングしてくれます。
逆にトラフィックが減少したときには不要なリソースを開放することができます。
3.自己修復機能:
Kubernetesは、失敗したコンテナを自動的に再起動したり、異常な状態のコンテナを停止したり、健全な状態に戻るまで監視と修復を行ってくれます。
4.ロードバランシング:
Kubernetesは複数のコンテナに対して自動的にトラフィックを均等に分散させ、負荷を効率的に分散してくれます。
5.宣言的なインフラストラクチャ:
Kubernetesではアプリケーションの望ましい状態をマニフェストファイルに記述します。
Kubernetesはその状態に合わせてシステムを自動調整してくれます。
6.クラスタ構成
クラスタと呼ばれるノードの集合で動作します。
クラスタには以下のようなコンポーネントがあります。
マスター
クラスタ全体を管理する役割を持ち、スケジューリング、ノードの監視、状態管理を行います。
ワーカーノード
実際にコンテナを実行するノードです。
ワーカーノード上にはコンテナを管理するkubeletやネットワーク設定を行うkube-proxyなどのコンポーネントが稼働します。