K8S高可用性

可用性の最初に、原則

  二世代抗K8Sマスタノードに、内部ノードがマスタノードにアクセスする必要がありますロードバランサnginxの、要求KUBE-apiserverアセンブリを通って、各ノードnginxのノードにインストールされている、新しいマスターノードを設定これは、高可用性マスターノードを有効にRenyiyitaiマスターノードがダウンしたとき、あなたはまた、nginxの負荷分散により、他のマスターノード上のドキュメントを置くことができます。KUBEスケジューラとKUBEコントローラマネージャの可用性は、二つのリーダーエレクトマスタプロファイルパラメータに設けられています。
 
  Kubernetes管理サービスはKUBE-スケジューラとKUBE-コントローラマネージャが含まれます。KUBE-scheduerとKUBEコントローラマネージャは、一つのサービスは、特定のタスクを課される可能同時に、高可用性ソリューションからマルチマスターを使用します。メインメニュー依存Etcdから選択された一次から選択される、単純なロジックで実現Kubernetesは、コントローラマネージャとスケジューラを達成します。ブート時にスケジューラとコントローラ・マネージャはパラメータリーダーエレクトを設定した場合、彼らは、特定のビジネスロジックを実行する前に、唯一のリーダーノードのIDを取得するには、リーダーノードのIDを取得する最初の試みの後に開始します。彼らは、EtcdでエンドポイントをKUBE-スケジューラとKUBE-コントローラ・マネージャーを作成したエンドポイントの情報が最後に更新され、現在のリーダーノードの情報を記録し、そして記録。リーダーノードは、定期的に自分のアイデンティティを保護するためにリーダーの情報エンドポイントを更新しました。情報は、時間の範囲内でエンドポイントを更新されない場合は、定期的にサービスを提供する各エンドポイントノードからの情報を確認し、彼らがリーダーノードとしての地位を更新しようとします。これは、分散型高同時実行で、グローバルに一意のリーダーノードを確保するために、強い一貫性Etcdを使用して、サービスおよびスケジューラコントローラマネージャサービスとの間で通信することはありません。
 
1、アプリケーションを含むファイルの展開YMLする準備ができて、その後、kubectlクライアントツールによってApiServerに送られました。
2、ApiServerは、コンテンツクライアントのデータベース(ETCD)に格納されたリソース要求を受信します。
3、監視およびリソースの変化に対応するために(スケジューラ、複製、エンドポイントを含む)コントローラアセンブリ。
図4は、インスタンスポッドの所望の数を作成し、データベースの変更をチェックさらにreplicaSet。
5、スケジューラデータベースチェックが再度ポッド特定の実行ノード(ノード)に割り当てられていないが見出さ変更し、一連のルールに従って割り当てられたポッドは、そのノード上で実行し、データベースレコードポッド分布を更新することができます。
6、Kubelete監視データベース変更管理ライフサイクルの追跡ポッド、ポッドは、ノード上で実行されているものに分配することが見出さ。新しいポッドを見つけた場合は、そのノードで新しいポッドを実行します。
7、各ホストクラスタ上で実行されているkuberproxy、そのようなサービスの発見、ロードバランシングなどの管理ネットワーク通信、。ホストが送信するデータを持っている場合たとえば、それは正しいポッドまたはコンテナにルーティングされます。ホストから送信されたデータのために、それはリモートサーバの要求アドレスに基づいて求め、かつ正確にデータをルーティングする、いくつかの場合には回転スケジューリングアルゴリズム(ラウンドロビン)を使用することができ、クラスタ内の複数のインスタンスに要求を送信します。
 
1.利用者は、次の2つの形式を使用すると、APIのAPIサーバーも利用可能Kubectlコマンドラインツールで休むことができる、ポッドを作成するための要求を提出し、サポートJSON、YAML。
データポッドETCDを格納する2. APIサーバーハンドルユーザー要求。
3.によってスケジュールとノードをバインドするための新しいポッド、ポッドの試みを表示するためのメカニズムのAPIサーバーを見て、
4.フィルターホスト:ホストを除外するために一連のルールをスケジュールするために使用さは、要件を満たしていない、ポッドが必要なリソースを指定するなど、それはホストに十分なリソースをフィルタリングでしょう。
5.ホストのスコアリング:ホストの最初のステップは、スコアリングの要件を満たすためにスクリーニング、ステージに得点ホストは、スケジューラは最低の負荷を使用し、そのような別のホストへのレプリケーションコントローラーのコピーの配布など、全体的な最適化戦略を検討しますホスト、等。
6. [ホスト:ホストが結合操作のための最高のスコアを、選択、およびEtcdに結果を格納します。
7. kubeletが実装スケジュールポッド操作の結果に基づいて作成された:結合が成功した後、それはコンテナ、ドッキングウィンドウの実行を開始します、スケジューラは、すべての作業ノード上で実行するためにバインドを説明されてバインドされたポッドオブジェクトetcdを作成するためのAPIのAPIサーバーを呼び出しますポッド情報。それがバインドされポッドオブジェクトが作業を更新しないノード上で実行する必要があります発見された場合、各ノード上で実行されているKubeletも、etcdバインドポッド同期情報を定期的に動作しますが、その後、ポッド内のコンテナを作成して起動するドッカーのAPIを呼び出します。
 
 

おすすめ

転載: www.cnblogs.com/muzinan110/p/11105792.html