Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

第18章 デバイスマネージャーの使用

18.1. デバイスマネージャーの機能

デバイスマネージャーは、特殊なノードのハードウェアリソースをデバイスプラグインとして知られる Kubelet プラグインを使って公開するメカニズムを提供する Kubelet 機能です。

すべてのベンダーがデバイスプラグインを実装し、アップストリームのコード変更なしにそれぞれの特殊なハードウェアを公開できます。

重要

OpenShift Container Platform はデバイスのプラグイン API をサポートしますが、デバイスプラグインコンテナーは個別のベンダーによりサポートされます。

デバイスマネージャーはデバイスを 拡張リソース として公開します。ユーザー Pod は、他の 拡張リソース を要求するために使用されるのと同じ 制限/要求 メカニズムを使用してデバイスマネージャーで公開されるデバイスを消費できます。

18.1.1. 登録

使用開始時に、デバイスプラグインは /var/lib/kubelet/device-plugins/kubelet.sock Register を起動してデバイスマネージャーに自己登録し 、デバイスマネージャーの要求を提供するために/var/lib/kubelet/device-plugins/<plugin>.sock で gRPC サービスを起動します。

18.1.2. デバイスの検出および正常性のモニタリング

デバイスマネージャーは、新規登録要求の処理時にデバイスプラグインサービスで ListAndWatch リモートプロシージャーコール (RPC) を起動します。応答としてデバイスマネージャーは gRPC ストリームでプラグインから デバイス オブジェクトの一覧を取得します。デバイスマネージャーはプラグインからの新規の更新の有無についてストリームを監視します。プラグイン側では、プラグインはストリームを開いた状態にし、デバイスの状態に変更があった場合には常に新規デバイスの一覧が同じストリーム接続でデバイスマネージャーに送信されます。

18.1.3. デバイスの割り当て

新規 Pod の受付要求の処理時に、Kubelet はデバイスの割り当てのために要求された Extended Resource をデバイスマネージャーに送信します。デバイスマネージャーはそのデータベースにチェックインして対応するプラグインが存在するかどうかを確認します。プラグインが存在し、ローカルキャッシュと共に割り当て可能な空きデバイスがある場合、Allocate RPC がその特定デバイスのプラグインで起動します。

さらにデバイスプラグインは、ドライバーのインストール、デバイスの初期化、およびデバイスのリセットなどの他のいくつかのデバイス固有の操作も実行できます。これらの機能は実装ごとに異なります。