コントロールプレーンコンポーネントETCDetcd は、Kubernetes オブジェクト データ (ポッド、レプリケーション コントローラー、シークレット、サービスなど) の永続ストレージのバッキング ストアとして使用される、高速で分散された一貫性のあるキー値ストアです。実際、etcd は Kubernetes がクラスターの状態とメタデータを保存する唯一の場所です。 etcd と直接通信する唯一のコンポーネントは Kubernetes API サーバーです。他のすべてのコンポーネントは、API サーバーを介して間接的に etcd にデータを読み書きします。 Etcd は、キーの変更を非同期的に監視するためのイベントベースのインターフェースを提供する監視機能も実装しています。キーが変更されると、そのオブザーバーに通知されます。 API サーバー コンポーネントは、通知を受け取り、etcd の現在の状態を目的の状態に移行するためにこれに大きく依存しています。 etcd インスタンスの数は奇数にする必要がありますか? HA 環境では通常、3、5、または 7 個の etcd インスタンスを実行しますが、それはなぜでしょうか? etcd は分散データ ストアであるため、水平方向に拡張できますが、各インスタンスのデータが一貫していることを確認する必要があり、そのためにはシステムが状態について合意に達する必要があります。 Etcd はこれに RAFT コンセンサス アルゴリズムを使用します。 このアルゴリズムでは、次の状態に進むためにクラスターの過半数 (またはクォーラム) が必要です。 etcd インスタンスが 2 つしかない場合、いずれか 1 つに障害が発生すると、多数派が存在しないため etcd クラスターは新しい状態に移行できません。一方、インスタンスが 3 つある場合は、1 つのインスタンスに障害が発生しても、多数派に達したインスタンスは引き続き使用できます。 API サーバーAPI サーバーは、Kubernetes 内で etcd と直接やり取りする唯一のコンポーネントです。 Kubernetes とクライアント (kubectl) 内の他のすべてのコンポーネントは、クラスターの状態を処理するために API サーバーを経由する必要があります。 API サーバーは次の機能を提供します。
コントローラーマネージャーKubernetes では、コントローラーはクラスターの状態を監視し、必要に応じて変更を加えたり要求したりする制御ループです。各コントローラーは、現在のクラスターの状態を目的の状態に近づけようとします。コントローラーは少なくとも 1 つの Kubernetes リソース タイプを追跡し、これらのオブジェクトには目的の状態を表す正規フィールドがあります。 コントローラーの例:
コントローラーは監視メカニズムを使用して変更の通知を受け取ります。これらは、API サーバーを監視してリソースの変更を検出し、新しいオブジェクトの作成、既存のオブジェクトの更新や削除など、変更ごとにアクションを実行します。ほとんどの場合、これらの操作には他のリソースの作成や監視対象のリソース自体の更新が含まれますが、監視を使用してもコントローラーがイベントを見逃さないことが保証されるわけではないため、何も見逃されていないことを確認するために定期的に再リスト操作も実行されます。 コントローラー マネージャーは、名前空間の作成とライフサイクル、イベント ガベージ コレクション、終了したポッド ガベージ コレクション、カスケード削除ガベージ コレクション、ノード ガベージ コレクションなどのライフサイクル機能も実行します。 スケジューラスケジューラは、ポッドをノードに割り当てるコントロール プレーン プロセスです。割り当てられたノードを持たない新しく作成されたポッドを監視し、スケジューラが検出した各ポッドに対して、そのポッドを実行するのに最適なノードを見つける責任をスケジューラが負います。 Pod のスケジューリング要件を満たすノードは、実行可能ノードと呼ばれます。適切なノードがない場合、ポッドはスケジューラが配置できるようになるまでスケジュールされないままになります。実行可能なノードが見つかると、一連の関数を実行してノードにスコアを付け、スコアが最も高いノードを選択します。次に、選択されたノードについて API サーバーに通知します。このプロセスはバインディングと呼ばれます。 ノードの選択は 2 つのステップに分かれています。
スケジュールの決定において考慮する必要がある要素は次のとおりです。
スケジューラは、選択されたノードにポッドを実行するように指示しません。スケジューラが行うことは、API サーバーを通じてポッド定義を更新することだけです。 API サーバーは、ウォッチ メカニズムを通じてポッドがスケジュールされたことを Kubelet に通知します。ターゲット ノード上の kubelet サービスは、ポッドがそのノードにスケジュールされたことを確認し、ポッドのコンテナを作成して実行します。 ワーカーノードのコンポーネントクベレットKubelet は、クラスター内のすべてのノードで実行されるエージェントであり、ワーカーノードで実行されるすべてのものを担当するコンポーネントです。コンテナが Pod 内で実行されることを保証します。 kubelet サービスの主な機能は次のとおりです。
kubeプロキシこれはすべてのノードで実行され、ポッドが別のポッドと通信できること、ノードが別のノードと通信できること、コンテナーが別のコンテナーと通信できることなどを保証します。また、API サーバーを監視してサービスとポッドの定義の変更を検出し、全体的なネットワーク構成を最新の状態に保つ役割を担います。サービスが複数のポッドで構成されている場合、プロキシはこれらのポッド間で負荷分散を行います。 kube-proxy は、接続を受け入れて Pod にプロキシする実際のプロキシ サーバーであるため、その名前が付けられています。現在の実装では、iptables または ipvs ルールを使用して、実際のプロキシ サーバーを経由せずに、ランダムに選択されたバックエンド Pod にパケットをリダイレクトします。
コンテナランタイムコンテナの実行、コンテナの名前空間と cgroup の設定に重点を置いたコンテナ ランタイムは低レベル コンテナ ランタイムと呼ばれ、イメージのフォーマット、解凍、管理、共有、開発者のニーズを満たす API の提供に重点を置いたコンテナ ランタイムは高レベル コンテナ ランタイム (コンテナ エンジン) と呼ばれます。 コンテナ ランタイムは次の処理を担当します。
|
<<: Quick BI はどのようにして、中国で唯一、ガートナー社に継続的に選ばれる企業としての地位を獲得したのでしょうか?
1. オンラインポップアップ広告の厳しい規制に関する規則が今年中に発行される可能性があるウェブページ...
私たちウェブマスターの多くにとって、Chinaz や A5 などの有名なウェブマスターの Web サ...
最近、以前のSEOの仕事を辞めて、もっと良い会社を見つけたいと思い、広大な深センで自分に合った会社を...
香港のVPSのおすすめ:香港に登録されている会社、starrydns(Starlight Netwo...
最近、ウェン・チャンは大人気となり、汪峰を羨ましがらせ、嫉妬させ、間違いなく話題になっている。ウェン...
新たな消費の波の下、インターネットの有名人から常緑樹まで、新しいお茶飲料は重要な節目を迎えている。今...
SEO と SEM の違いは何ですか?主な違いは、検索エンジン最適化 (SEO) は、オーガニック検...
2015年12月、滴滴出行の自動運転部門のCEOである張波氏が正式に父親になった。これは彼の人生にお...
この老舗ブランドであるAoyou Hostingは、618プロモーションを開催しています。(1) す...
7月27日、北京でクラウド・コンピューティング・サミット「Cloud Insight Confere...
[51CTO.com からのオリジナル記事]モダン アプリケーションは、間違いなく近年最もホットなト...
新華社によると、浙江省金華市中級人民法院は11月1日、国内最大のオンラインねずみ講事件である「万家シ...
はじめに: P2P 業界が中国銀行業監督管理委員会の監督下に置かれたことを受けて、中国銀行業監督管理...
企業のウェブサイト最適化におけるタイトルの記述は非常に細心の注意を要する作業です。基本的な方法は誰も...
現在、Sina と Tencent はマイクロブログ業界の巨人であり、この 2 つのマイクロブログ ...