6.2. Configuration de l'autoscaler de cluster
Tout d'abord, déployez le cluster autoscaler pour gérer la mise à l'échelle automatique des ressources dans votre cluster OpenShift Container Platform.
Étant donné que l'autoscaler de cluster s'applique à l'ensemble du cluster, vous ne pouvez créer qu'un seul autoscaler de cluster pour le cluster.
6.2.1. Définition de la ressource ClusterAutoscaler
Cette définition de ressource ClusterAutoscaler
montre les paramètres et les valeurs d'exemple pour l'autoscaler de cluster.
apiVersion: "autoscaling.openshift.io/v1" kind: "ClusterAutoscaler" metadata: name: "default" spec: podPriorityThreshold: -10 1 resourceLimits: maxNodesTotal: 24 2 cores: min: 8 3 max: 128 4 memory: min: 4 5 max: 256 6 gpus: - type: nvidia.com/gpu 7 min: 0 8 max: 16 9 - type: amd.com/gpu min: 0 max: 4 logVerbosity: 4 10 scaleDown: 11 enabled: true 12 delayAfterAdd: 10m 13 delayAfterDelete: 5m 14 delayAfterFailure: 30s 15 unneededTime: 5m 16 utilizationThreshold: "0.4" 17
- 1
- Spécifiez la priorité qu'un pod doit dépasser pour que l'autoscaler de cluster déploie des nœuds supplémentaires. Entrez une valeur entière de 32 bits. La valeur
podPriorityThreshold
est comparée à la valeurPriorityClass
que vous attribuez à chaque module. - 2
- Indiquez le nombre maximal de nœuds à déployer. Cette valeur correspond au nombre total de machines déployées dans votre cluster, et pas seulement à celles que l'autoscaler contrôle. Veillez à ce que cette valeur soit suffisamment importante pour prendre en compte toutes les machines de calcul et du plan de contrôle, ainsi que le nombre total de répliques spécifié dans les ressources
MachineAutoscaler
. - 3
- Spécifiez le nombre minimum de cœurs à déployer dans le cluster.
- 4
- Spécifiez le nombre maximum de cœurs à déployer dans le cluster.
- 5
- Spécifiez la quantité minimale de mémoire, en GiB, dans le cluster.
- 6
- Spécifiez la quantité maximale de mémoire, en GiB, dans le cluster.
- 7
- Facultatif : Spécifiez le type de nœud GPU à déployer. Seuls
nvidia.com/gpu
etamd.com/gpu
sont des types valides. - 8
- Spécifiez le nombre minimum de GPU à déployer dans le cluster.
- 9
- Spécifiez le nombre maximum de GPU à déployer dans le cluster.
- 10
- Spécifiez le niveau de verbosité de la journalisation entre
0
et10
. Les seuils de niveau de journalisation suivants sont fournis à titre indicatif :-
1
(par défaut) Informations de base sur les modifications. -
4
: Verbosité au niveau du débogage pour résoudre les problèmes typiques. -
9
: Informations de débogage étendues au niveau du protocole.
Si vous ne spécifiez pas de valeur, la valeur par défaut de
1
est utilisée. -
- 11
- Dans cette section, vous pouvez spécifier la période d'attente pour chaque action en utilisant n'importe quel intervalle ParseDuration valide, y compris
ns
,us
,ms
,s
,m
, eth
. - 12
- Indiquez si l'autoscaler de cluster peut supprimer les nœuds inutiles.
- 13
- Facultatif : Spécifiez le délai d'attente avant la suppression d'un nœud après qu'un nœud ait été récemment added. Si vous ne spécifiez pas de valeur, la valeur par défaut de
10m
est utilisée. - 14
- Facultatif : Spécifiez le délai d'attente avant la suppression d'un nœud après qu'un nœud ait été récemment deleted. Si vous ne spécifiez pas de valeur, la valeur par défaut de
0s
est utilisée. - 15
- Facultatif : Indiquez le délai d'attente avant la suppression d'un nœud après un échec de mise à l'échelle. Si vous n'indiquez pas de valeur, la valeur par défaut de
3m
est utilisée. - 16
- Facultatif : Spécifiez la période avant qu'un nœud inutile ne soit éligible à la suppression. Si vous ne spécifiez pas de valeur, la valeur par défaut de
10m
est utilisée.<17> Facultatif : Indiquez l'adresse node utilization level en dessous de laquelle un nœud inutile peut être supprimé. Le niveau d'utilisation du nœud correspond à la somme des ressources demandées divisée par les ressources allouées au nœud et doit être supérieur à"0"
et inférieur à"1"
. Si vous n'indiquez pas de valeur, l'autoscaler de cluster utilise la valeur par défaut"0.5"
, qui correspond à une utilisation de 50 %. Cette valeur doit être exprimée sous la forme d'une chaîne de caractères.
Lors d'une opération de mise à l'échelle, l'autoscaler de cluster reste dans les plages définies dans la définition de la ressource ClusterAutoscaler
, comme le nombre minimum et maximum de cœurs à déployer ou la quantité de mémoire dans le cluster. Cependant, l'autoscaler de cluster ne corrige pas les valeurs actuelles de votre cluster pour qu'elles soient comprises dans ces plages.
Les valeurs minimales et maximales des CPU, de la mémoire et des GPU sont déterminées en calculant ces ressources sur tous les nœuds de la grappe, même si l'autoscaler de grappe ne gère pas les nœuds. Par exemple, les nœuds du plan de contrôle sont pris en compte dans la mémoire totale de la grappe, même si l'autoscaler de la grappe ne gère pas les nœuds du plan de contrôle.
6.2.2. Déploiement du cluster autoscaler
Pour déployer le cluster autoscaler, vous créez une instance de la ressource ClusterAutoscaler
.
Procédure
-
Créer un fichier YAML pour la ressource
ClusterAutoscaler
qui contient la définition de la ressource personnalisée. Créer la ressource dans le cluster :
$ oc create -f <filename>.yaml 1
- 1
<filename>
est le nom du fichier de ressources que vous avez personnalisé.