7.3. スケジューリングメカニズムをカプセル化するための RuntimeClass オブジェクトの作成
RuntimeClass オブジェクトを使用することにより、テイントおよび toleration などのスケジュールの仕組みの使用を単純化できます。テイントおよび toleration をカプセル化するランタイムクラスをデプロイしてから、これを Pod に適用して Pod を適切なノードにスケジュールできるようにします。ランタイムクラスの作成は、複数のオペレーティングシステムのバリアントをサポートするクラスターでも必要になります。
手順
RuntimeClassオブジェクト YAML ファイルを作成します。例:runtime-class.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- このランタイムクラスで管理する必要のある Pod で定義される
RuntimeClassオブジェクト名を指定します。 - 2
- このランタイムクラスをサポートするノードに存在する必要があるラベルを指定します。このランタイムクラスを使用する Pod は、このセレクターに一致するノードにのみスケジュールできます。ランタイムクラスのノードセレクターは Pod の既存のノードセレクターとマージされます。競合が発生した場合は、Pod をノードにスケジュールできなくなります。
-
Windows 2019 の場合は、
node.kubernetes.io/windows-build: '10.0.17763'ラベルを指定します。 -
Windows 2022 の場合は、
node.kubernetes.io/windows-build: '10.0.20348'ラベルを指定します。
-
Windows 2019 の場合は、
- 3
- Pod に追加する toleration を指定します。ただし、受付時にこのランタイムクラスで実行される重複を除きます。これによって、Pod によって許容されるノードのセットとランタイムクラスが組み合わされます。
RuntimeClassオブジェクトを作成します。oc create -f <file-name>.yaml
$ oc create -f <file-name>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下に例を示します。
oc create -f runtime-class.yaml
$ oc create -f runtime-class.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow RuntimeClassオブジェクトを Pod に適用し、これが適切なオペレーティングシステムバリアントにスケジュールされていることを確認します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Pod のスケジュールを管理するためにランタイムクラスを指定します。