Kubernetesの理解:特徴、アーキテクチャ、コンポーネントの解説
Kubernetesとは? Kubernetesは包括的な分散システムサポートプラットフォームです。これには、マルチレイヤーセキュリティ保護や入場制御メカニズム、マルチテナントアプリケーションサポート、透過的なサービス登録および検出メカニズム、組み込みのインテリジェントな負荷分散器、強力な障害検出および自己修復機能、サービスのローリングアップグレードおよびオンラインスケーリング機能、スケーラブルなリソース自動スケジューリングメカニズム、細かいリソースクォータ管理機能など、堅牢なクラスター管理機能が含まれます。同時に、Kubernetesは、開発、テスト、展開、運用監視などの様々な段階をカバーする完全な管理ツールセットを提供しています。そのため、Kubernetesはコンテナ技術に基づく新しい分散アーキテクチャの解決策であり、包括的な分散システム開発およびサポートプラットフォームとして機能します。 Kubernetesアーキテクチャ図 Kubernetes基本サービスの紹介 ここでは、Kubernetesの基本コンポーネントを簡単に紹介します。詳細な説明は後続の記事で提供されます! Kubernetesサービスの紹介 サービスは、分散クラスターアーキテクチャの中心です。サービスオブジェクトには、次の主要な特徴があります: 現在、サービスのプロセスは、外部でサービスを提供するためにSocket通信メソッドに基づいています。たとえば、redis、memcache、MySQL、Webサーバー、または特定のTCPサーバープロセスが特定のビジネスを実装しています。サービスは通常、複数の関連するサービスプロセスによって提供されますが、各サービスプロセスには独立したエンドポイント(IP +ポート)アクセスポイントがあります。これにより、バックエンドのサービスプロセスの数や、サービスプロセスが障害により別のマシンに再デプロイされるかどうかに関係なく、サービスの正常な呼び出しに影響を与えません。さらに重要なことは、このサービスが作成されると、それ以上変更されないということです。これは、Kubernetesクラスター内で、もはやサービスのIPアドレスの変更の問題を心配する必要がないことを意味します。 サーバーアクセス図 Kubernetesポッドの紹介 ポッドの概念: ポッドは、ノードと呼ばれる環境で実行されます。これは、プライベートまたはパブリッククラウドの仮想マシンまたは物理マシンである可能性があります。通常、1つのノードで数百のポッドが実行されます。次に、各ポッドはPauseと呼ばれる特別なコンテナを実行し、他のコンテナはビジネスコンテナです。これらのビジネスコンテナはPauseコンテナのネットワークスタックとVolumeマウントボリュームを共有するため、それらの間の通信とデータ交換が効率的に行われます。設計時には、この特徴を十分に活用して、関連のある一連のサービスプロセスを同じポッドに配置することができます。 すべてのポッドとその内部で実行されるコンテナがサービスにマッピングされるわけではありません。サービスを提供するポッドのグループのみがサービスにマッピングされます。 サービスとポッドの関係 コンテナは強力な隔離を提供するため、サービスのためのプロセスグループをコンテナに分離する必要があります。Kubernetesは、それぞれのサービスプロセスを対応するポッドにラップするPodオブジェクト を設計し、それをPodで実行されるコンテナにします。サービスとポッドの関係を確立するために、Kubernetesはまず各ポッドにラベルを割り当てます。たとえば、MySQLを実行しているポッドにはname=mysqlラベルが割り当てられ、PHPを実行しているポッドにはname=phpラベルが割り当てられます。その後、対応するサービスのためのラベルセレクタを定義します。たとえば、MySQLサービスのラベルセレクタはname=mysqlです。これは、このサービスがname=mysqlラベルを含むすべてのポッドに適用されることを意味します。これにより、サービスとポッドの関連付けの問題が巧みに解決されます。 Kubernetesレプリケーションコントローラ(RC)の紹介 Kubernetesクラスターでは、スケールが必要なサービスに関連するポッドにRC(レプリケーションコントローラ)を作成するだけです。これにより、サービスの拡張やその後のサービスのアップグレードなどの問題が解決されます。 RCファイルの定義には、次の3つの重要なポイントが含まれます:
Read More