K8Sリソーススケジューリングのポッド

1、共通政策の事前選択

2、好ましくは機能
3、ノードのスケジュールとの親和性
3.1、ノードのハード親和性
3.2、ノードソフト親和性
4、ポッドおよびスケジューリングリソースの親和性
4.1、ポッドハード親和性
4.2、ポッドソフト親和性
4.3、ポッド親和性抗
5、シミや寛容
5.1、汚れや寛容の定義
5.2汚れ、管理ノード
5.3、寛容ポッドのオブジェクト
 
 
作成要求は、ポッドのAPIサーバーを提出した後、ポッドを作成して実行するには、クラスタからノードスケジューラ(KUBE-予定)で利用可能な最善の選択をし、クライアントオブジェクトを受け入れ、そして。
これは、ポッドオブジェクトを作成し、3つのフェーズがスケジューリングプロセスれているがあります。あらかじめノード、好ましくはノード、選択されたノードは、最良のノードを選択します。
 
ノード事前:各検査ノードのためのルールのセットに基づいて予め選択された、フィルタ条件に一致しないノードは、それによって、予め選択されたノードを完成します
好ましくは、ノード:ノードの予め選択された優先順位付けは、最も適切なターゲット動作ノードポッドを選択します
選択されたノード:優先順位ポッド演算結果から、最も優先度の高いノードを選択し、場合つ以上のそのようなノード、ランダム選択
 
私たちは、ポッドは、特定のリソースのノード上で実行し、特定の要件を持つようにしたい場合は、我々は、このようなMatchInterPodAfinity、MatchNodeSelector、予め選択された他のPodToleratesNodeTaintsとして、政策のノードラベル、ラベルやタグセレクタポッドによって事前に選択されたとスケジューリングが行われているの特定の組み合わせを一致させることができます一般ユーザーポッドの親和性又は抗親和性および親和性に基づく汚れや寛容をカスタマイズするノードのスケジューリング機構を提供するために使用されるポリシー、。
 
 
ポッドリソーススケジューリング
1、共通政策の事前選択
ノード予め選択された戦略は、このようなラベルセレクタリソースポッドにラベル(MatchNodeSelectorルールが実装されている)、ポッド容器は、等リソース(PodFitsResourceルール)を割り当てることができる残りのノードを超えることができないと一致することができなければならない資源ノードの要求量として、実際のフィルタでありますように。予め選択された操作を実行し、スケジューラがない場合、ノードがスケジュールを完了するのに利用可能になるまで、適切なノードが、この時点では保留状態ポッドにとどまる可能性が事前に選択し、ルールに従ってフィルタを通過します。
 
2、好ましくは機能
好ましいノードステージのリストに入る前スクリーニング戦略は、スケジューラは、優先度の値は、好ましくは、各工程において、予め選択された一連のノードを通過する関数で計算し、0-10の間の優先順位スコアNAは、10が最も適しポッド管理対象オブジェクトを表し、0を表し部屋、。
さらに、各スケジューラにさらに支持体を好ましくは単純な関数は重みを示す値を指定し、ノードの優先順位スコアを算出し、それは第一各好ましい関数のスコアを算出し、重みが乗算され、次いで、好ましくは全ての機能スコアが優先ノードの最終的なスコアを取得するために追加しました。好適な関数ができます重量は、傾向を定義する機能を管理者に
 
3、ノードのスケジュールとの親和性
ポッドノードは、これらのルールは、ノードのカスタムラベルと定義された指定されたオブジェクトポッドタグセレクタに基づいているディスパッチルールノードにオブジェクトの親和性を決定するために使用されます。
剛性の親和性(必要)とソフト親和性(優先):アフィニティルールは、二種類のノードを定義します
 
ハード親和性:実装が必須ルール、ポッドをスケジュールする際に満たさなければならないルール、ポッド状態では、そうでない場合は、オブジェクトが保留されただろう
ソフト親和性:そのルールを満たすためにしようとするかもしれポッドスケジューリングの間に限定されている柔軟な実装をスケジュールは、ルールが一度に満たすことができない、ルールに一致しないノードにスケジュールすることができます。
プロノードの定義及び規則二点:最初のノード構成がラベル要件に準拠しているが、オブジェクトポッドタグセレクタの合理的定義は、宛先ノードに基づいて、所望のラベルを選択するようになっています。
 
文字列IgnoredDuringExecutionの後半にpreferredDuringSchedulingIgnoredDuringExecutionとrequiredDuringSchedulingIgnoredDuringExecution名の後にノードのラベルが変更された場合、ノードの親和性に基づく規則にポッドリソーススケジューリングの後、スケジューラはポッドオブジェクトを話すことができない、ことを示していることに注意してください新しい有効なオブジェクトポッドの唯一のルールので、ノードから削除。
 
4、ポッドおよびスケジューリングリソースの親和性
効率的な通信のための需要が、例えば前端と後端ポッドポッドサービス、これらのオブジェクトポッドとの間のこの時間として、いくつかのポッド類似あるいは同一の位置エリア(例えば、同じノード、部屋、エリアなど)などをスケジュールすることが時々必要です関係は親和性呼び出すことができます。
セキュリティ上の理由のために、同時に、この時間は、これらのオブジェクト間の関係は、抗ポッドの親和性(抗親和性)と呼ばれ、ポッドの一部の間で分離されます。
ポッドの最初の任意の位置にスケジューラ、次いでポッドは、動的スケジューリングに基づいて、親和性または抗ポッド完了位置の親和性を有し、それは抗ポッド親和親和スケジュールの役割です。親和性の差のためのハードとソフトの親和性、および同様の意味として提示ポッド親和性の定義は、アフィニティ・ノードをバインドします。
ポッドポッドそれぞれの親和スケジュールと同じ位置にあるオブジェクトの操作に関連する要件が、彼らは同じ位置に抗親和性の実行を必要としません。ここでの位置は、実際に同じ場所にポッド決意結果が異なることになるかどうかを、ノード・トポロジの位置に依存する異なる方法のトポロジー。
各ノードベースkubernetes.io/hostnameのラベルはホスト名に基づいて、判断する場合、同じロケーションエリアにノードか否かを判定する。
 
4.1、ポッドハード親和性
ポッド強制親和スケジュール制約が使用requiredDuringSchedulingIgnoredDuringExecutionのために定義されています。ポッドの親和性は、オブジェクトの位置と走行ポッドポッドの既存のオブジェクト間の依存関係の有無を記述するために使用されるので、あなたは、親和性ポッドの制約をテストしたい場合は、対象である依存ポッドの存在を必要としている、と次のように作成しますアプリ=資源のTomcatの展開は、ポッドオブジェクトをデプロイします。
ポッドケースは、単一のノードが比較的あまり使用されたのと同じ領域、領域に基づいて使用するための親和性に基づいて位相的な位置の制約をラック。例えば、アプリケーション(のMyApp)の配備とPOD関連サービスは、両方のポッドは、同じ領域に配置する必要があり、データベース(DB)のために、通信の速度を加速することができます。
 
4.2、ポッドソフト親和性
同様に、ハード、ソフトの親和性、すなわち親和性、ポッドはまた、ポッド定義されたソフトの親和性preferredDuringSchedulingIgnoredDuringExecuttionの属性をサポートし、スケジューラは、アフィニティスケジューリングの制約を満たすために試みることが、制約が許すも、一度に満たすことができませんポッドは、別のノード上で実行するようにスケジュール。
 
4.3、ポッド親和性抗
podAffinityの親和性とポッドオブジェクトを定義された制約、および抗オブジェクトがpodAntiAffintyのプロパティで定義されているポッドの親和性をスケジュールします、
 
5、シミや寛容
5.1、汚れや寛容の定義
汚れ(は汚染さ)はキーノードの集合で定義されているオブジェクトが許容ポッド受信ノード汚れがない限り、ノードは、ノード上のポッドスケジューリングすることを拒否することを可能にするために使用されるデータ・タイプを、属性。公差(tolerationsは)ので、ポッド染色ノードを許容することができるオブジェクトを構成するために、キーオブジェクトデータ型ポッド上で定義されています。
 
上記スケジューリングモードセレクタノードとノードは、ノードのラベルの完全なオブジェクトポッド特定のタイプの一致のアフィニティータグセレクタを追加することによって決定され、ポッド選択ノードように達成されます。汚れや公差が汚れ情報ノードを追加することにより、スケジューリング結果ポッドオブジェクトを制御することで、ノードは、そのノード上の一の方法を制御するようにスケジュールすることができるポッド・オブジェクトを作成しなければなりません。
 
Kubernetes戦略を事前に選択し、これを実現するためにPodToleratesNodeTaints TaintTolerationPriority好ましくは、スケジューリング機能を使用して。
 
ノードnodeSpecで定義された汚れは、寛容は、鍵データの種類内に入るpodSpecにポッドで定義されたマークの構文は=値キーである二つのモードの効果をサポートしている:効果、前記キーと値ユーザノートと同様のフォーマットとリソース、及び効果は、主に次の3種類が含まれ、拒絶ポッドオブジェクトのレベルを定義するために使用されます。
 
NoSchedule:この汚れに耐えられない新しいオブジェクトポッドは、ノード上でスケジュールすることはできませんが、必須制約ノードポッドの既存のオブジェクトは影響を受けませんです。
PreferNoSchedule:NoScheduleが可撓性拘束に属し、ノードを染色しないように、すなわち、オブジェクトはこのポッドスケジュールに耐えることができないが、他のノードは、スケジュールされた時間が受諾させてもよいスケジュールなくてもよいです。
NOEXECUTE:ターゲットノード既存のノード染色ポッドポッド公差のばらつきや変動がルールに一致しないもたらすためポッド汚れを許容する新しいオブジェクトが、そのノード上の義務をスケジュールすることができない、ポッドオブジェクトがノードから削除されます。
均等と存在しますオブジェクトがサポートオペレータ2ポッド、上許容度を定義されている場合
 
均等:等価比較では、許容範囲を表し、正確にキー、値、3の効果に汚れと一致する必要があります。
存在を決定し、効果キーは、両方が一致する必要があることを示し、そして寛容フィールドヌルの値:存在しています。
Kubeadmクラスタを使用して展開され、自動的にマスタノード染色に関する情報を追加し、ノード上のスケジューリングに許容ポッド対象を防止染色
 
 
5.2汚れ、管理ノード
 
この時点で、既に本ポッドnode01影響を受けるノードのみ新しいオブジェクトポッドインパクト上のオブジェクトは、鍵データが同じであるが、異なる最終的な識別情報は、異なる染色に属し、等場合、ことに留意すべきですPreferNoSchedule:として識別node01を与えるために、汚れを追加
 
 
5.3、寛容ポッドのオブジェクト
均等および方法が存在する:ポッド許容オブジェクトはspec.tolerationsフィールドで追加することができ、二つの同一の演算子があります。
 
 

おすすめ

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