Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Instances Spot
Groupes de nœuds gérés
eksctl
prend en charge les nœuds de travail ponctuels à l'aide de groupes de nœuds gérés par EKS
Pour créer un cluster avec un groupe de nœuds géré à l'aide d'instances Spot, transmettez l'--spot
indicateur et une liste facultative de types d'instances :
eksctl create cluster --spot --instance-types=c3.large,c4.large,c5.large
Pour créer un groupe de nœuds géré à l'aide d'instances Spot sur un cluster existant :
eksctl create nodegroup --cluster=<clusterName> --spot --instance-types=c3.large,c4.large,c5.large
Pour créer des instances Spot à l'aide de groupes de nœuds gérés via un fichier de configuration :
# spot-cluster.yaml apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: spot-cluster region: us-west-2 managedNodeGroups: - name: spot instanceTypes: ["c3.large","c4.large","c5.large","c5d.large","c5n.large","c5a.large"] spot: true # `instanceTypes` defaults to [`m5.large`] - name: spot-2 spot: true # On-Demand instances - name: on-demand instanceTypes: ["c3.large", "c4.large", "c5.large"]
eksctl create cluster -f spot-cluster.yaml
Note
Les groupes de nœuds non gérés ne prennent pas en charge les instanceTypes
champs spot
et, à la place, le instancesDistribution
champ est utilisé pour configurer les instances Spot. Voir ci-dessous
Plus d'informations
Groupes de nœuds non gérés
eksctl
prend en charge les instances ponctuelles via le MixedInstancesPolicy for Auto Scaling Groups.
Voici un exemple de groupe de nœuds qui utilise 50 % d'instances ponctuelles et 50 % d'instances à la demande :
nodeGroups: - name: ng-1 minSize: 2 maxSize: 5 instancesDistribution: maxPrice: 0.017 instanceTypes: ["t3.small", "t3.medium"] # At least one instance type should be specified onDemandBaseCapacity: 0 onDemandPercentageAboveBaseCapacity: 50 spotInstancePools: 2
Notez que le nodeGroups.X.instanceType
champ ne doit pas être défini lors de l'utilisation du instancesDistribution
champ.
Cet exemple utilise des instances de GPU :
nodeGroups: - name: ng-gpu instanceType: mixed desiredCapacity: 1 instancesDistribution: instanceTypes: - p2.xlarge - p2.8xlarge - p2.16xlarge maxPrice: 0.50
Cet exemple utilise la stratégie d'allocation de places optimisée en termes de capacité :
nodeGroups: - name: ng-capacity-optimized minSize: 2 maxSize: 5 instancesDistribution: maxPrice: 0.017 instanceTypes: ["t3.small", "t3.medium"] # At least one instance type should be specified onDemandBaseCapacity: 0 onDemandPercentageAboveBaseCapacity: 50 spotAllocationStrategy: "capacity-optimized"
Cet exemple utilise la stratégie d'allocation au capacity-optimized-prioritized comptant :
nodeGroups: - name: ng-capacity-optimized-prioritized minSize: 2 maxSize: 5 instancesDistribution: maxPrice: 0.017 instanceTypes: ["t3a.small", "t3.small"] # At least two instance types should be specified onDemandBaseCapacity: 0 onDemandPercentageAboveBaseCapacity: 0 spotAllocationStrategy: "capacity-optimized-prioritized"
Utilisez la stratégie capacity-optimized-prioritized
d'allocation, puis définissez l'ordre des types d'instances dans la liste des remplacements de modèles de lancement, de la priorité la plus élevée à la plus faible (du premier au dernier de la liste). Amazon EC2 Auto Scaling respecte les priorités relatives aux types d'instances dans la mesure du possible, mais optimise d'abord la capacité. Il s'agit d'une bonne option pour les charges de travail où les risques d'interruption doivent être minimisés, mais où la préférence pour certains types d'instances est également importante. Pour plus d'informations, consultez la section Options d'achat ASG.
Notez que le spotInstancePools
champ ne doit pas être défini lors de l'utilisation du spotAllocationStrategy
champ. Si ce n'spotAllocationStrategy
est pas spécifié, EC2 utilisera par défaut la lowest-price
stratégie.
Voici un exemple minimal :
nodeGroups: - name: ng-1 instancesDistribution: instanceTypes: ["t3.small", "t3.medium"] # At least one instance type should be specified
Pour distinguer les nœuds entre les instances ponctuelles ou à la demande, vous pouvez utiliser l'étiquette kubernetes node-lifecycle
qui aura la valeur spot
ou on-demand
dépendra de son type.
Paramètres dans InstancesDistribution
Consultez le schéma de configuration du cluster pour plus de détails.