6.2. Création d'un objet RuntimeClass pour encapsuler les mécanismes de planification
L'utilisation d'un objet RuntimeClass
simplifie l'utilisation de mécanismes de planification tels que les taints et les tolérances ; vous déployez une classe d'exécution qui encapsule vos taints et vos tolérances, puis vous l'appliquez à vos pods pour les planifier sur le nœud approprié. La création d'une classe d'exécution est également nécessaire dans les clusters qui prennent en charge plusieurs variantes de systèmes d'exploitation.
Procédure
Créer un fichier YAML de l'objet
RuntimeClass
. Par exemple,runtime-class.yaml
:apiVersion: node.k8s.io/v1beta1 kind: RuntimeClass metadata: name: <runtime_class_name> 1 handler: 'runhcs-wcow-process' scheduling: nodeSelector: 2 kubernetes.io/os: 'windows' kubernetes.io/arch: 'amd64' node.kubernetes.io/windows-build: '10.0.17763' tolerations: 3 - effect: NoSchedule key: os operator: Equal value: "Windows"
- 1
- Spécifiez le nom de l'objet
RuntimeClass
, qui est défini dans les pods que vous souhaitez voir gérés par cette classe d'exécution. - 2
- Spécifie les étiquettes qui doivent être présentes sur les nœuds qui prennent en charge cette classe d'exécution. Les modules utilisant cette classe d'exécution ne peuvent être planifiés que sur un nœud correspondant à ce sélecteur. Le sélecteur de nœud de la classe d'exécution est fusionné avec le sélecteur de nœud existant du module. Tout conflit empêche la programmation du module sur le nœud.
- 3
- Spécifier les tolérances à ajouter aux modules, à l'exclusion des doublons, fonctionnant avec cette classe d'exécution lors de l'admission. Cela combine l'ensemble des nœuds tolérés par le module et la classe d'exécution.
Créer l'objet
RuntimeClass
:oc create -f <nom-de-fichier>.yaml
Par exemple :
$ oc create -f runtime-class.yaml
Appliquez l'objet
RuntimeClass
à votre pod pour vous assurer qu'il est planifié sur la variante appropriée du système d'exploitation :apiVersion: v1 kind: Pod metadata: name: my-windows-pod spec: runtimeClassName: <runtime_class_name> 1 ...
- 1
- Spécifiez la classe d'exécution pour gérer l'ordonnancement de votre module.